International US Foreign Currency Exchange Rates Predictor

Author: Andrew Tran

Blog Post Inspiration and Objectives

In this blog post, I was hoping to look into using Machine Learning to make a prediction system. In particular, I was hoping to imitate ones used for stock prediction. However, since there were too many tutorials on this topic, I decided to investigate into another global, financial factor that governs trade internationally: international currency rates. In the news recently, I have heard rumors of how the international standard of utilizing the US dollar could be compromised with other global powers such as China and India rise in global dominance. Thus, I focused my efforts on analyzing the US currency conversion rates to other countries. With that said, let’s try to analyze this topic with some Machine Learning:

Data Preprocessing - Cleaning and Analytics

```{python}
# Import needed libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from tensorflow.keras.models import Sequential
from tensorflow.keras.optimizers import Adam
from tensorflow.keras import layers
from copy import deepcopy
import datetime as dt
plt.style.use("fivethirtyeight")
```

First, we will read and display the initial dataset in our file system for this blog post, downloaded from Kaggle. This dataset contains loads of valuable information such as almost every major world power’s international US currency conversion rate.

```{python}
# Reading and displaying the initial dataset
df = pd.read_csv("datasets/foreign_exchange_rates.csv")
df
```
Unnamed: 0 Time Serie AUSTRALIA - AUSTRALIAN DOLLAR/US$ EURO AREA - EURO/US$ NEW ZEALAND - NEW ZELAND DOLLAR/US$ UNITED KINGDOM - UNITED KINGDOM POUND/US$ BRAZIL - REAL/US$ CANADA - CANADIAN DOLLAR/US$ CHINA - YUAN/US$ HONG KONG - HONG KONG DOLLAR/US$ ... SINGAPORE - SINGAPORE DOLLAR/US$ DENMARK - DANISH KRONE/US$ JAPAN - YEN/US$ MALAYSIA - RINGGIT/US$ NORWAY - NORWEGIAN KRONE/US$ SWEDEN - KRONA/US$ SRI LANKA - SRI LANKAN RUPEE/US$ SWITZERLAND - FRANC/US$ TAIWAN - NEW TAIWAN DOLLAR/US$ THAILAND - BAHT/US$
0 0 2000-01-03 1.5172 0.9847 1.9033 0.6146 1.805 1.4465 8.2798 7.7765 ... 1.6563 7.329 101.7 3.8 7.964 8.443 72.3 1.5808 31.38 36.97
1 1 2000-01-04 1.5239 0.97 1.9238 0.6109 1.8405 1.4518 8.2799 7.7775 ... 1.6535 7.218 103.09 3.8 7.934 8.36 72.65 1.5565 30.6 37.13
2 2 2000-01-05 1.5267 0.9676 1.9339 0.6092 1.856 1.4518 8.2798 7.778 ... 1.656 7.208 103.77 3.8 7.935 8.353 72.95 1.5526 30.8 37.1
3 3 2000-01-06 1.5291 0.9686 1.9436 0.607 1.84 1.4571 8.2797 7.7785 ... 1.6655 7.2125 105.19 3.8 7.94 8.3675 72.95 1.554 31.75 37.62
4 4 2000-01-07 1.5272 0.9714 1.938 0.6104 1.831 1.4505 8.2794 7.7783 ... 1.6625 7.2285 105.17 3.8 7.966 8.415 73.15 1.5623 30.85 37.3
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
5212 5212 2019-12-25 ND ND ND ND ND ND ND ND ... ND ND ND ND ND ND ND ND ND ND
5213 5213 2019-12-26 1.4411 0.9007 1.5002 0.7688 4.0602 1.3124 6.9949 7.788 ... 1.354 6.7295 109.67 4.1337 8.8799 9.4108 181.3 0.9808 30.11 30.15
5214 5214 2019-12-27 1.4331 0.8949 1.4919 0.7639 4.0507 1.3073 6.9954 7.7874 ... 1.352 6.6829 109.47 4.126 8.8291 9.3405 181.35 0.9741 30.09 30.14
5215 5215 2019-12-30 1.4278 0.8915 1.4846 0.761 4.0152 1.3058 6.9864 7.7857 ... 1.3483 6.6589 108.85 4.1053 8.7839 9.3145 181.6 0.9677 30.04 29.94
5216 5216 2019-12-31 1.4225 0.8907 1.4826 0.7536 4.019 1.2962 6.9618 7.7894 ... 1.3446 6.6554 108.67 4.0918 8.7823 9.3425 181.3 0.9677 29.91 29.75

5217 rows × 24 columns

For clarity on the constraints and parameters of the working datasets, I went to find high-level exploratory statistics on all of the datasets: shape, information about all of the entries, etc.

```{python}
# Determining the shape of the initial dataset
df.shape
```
(5217, 24)
```{python}
# Getting a sample of the initial dataset through the seeing the first 10 entries
# completely in the dataset
df.head()
```
Unnamed: 0 Time Serie AUSTRALIA - AUSTRALIAN DOLLAR/US$ EURO AREA - EURO/US$ NEW ZEALAND - NEW ZELAND DOLLAR/US$ UNITED KINGDOM - UNITED KINGDOM POUND/US$ BRAZIL - REAL/US$ CANADA - CANADIAN DOLLAR/US$ CHINA - YUAN/US$ HONG KONG - HONG KONG DOLLAR/US$ ... SINGAPORE - SINGAPORE DOLLAR/US$ DENMARK - DANISH KRONE/US$ JAPAN - YEN/US$ MALAYSIA - RINGGIT/US$ NORWAY - NORWEGIAN KRONE/US$ SWEDEN - KRONA/US$ SRI LANKA - SRI LANKAN RUPEE/US$ SWITZERLAND - FRANC/US$ TAIWAN - NEW TAIWAN DOLLAR/US$ THAILAND - BAHT/US$
0 0 2000-01-03 1.5172 0.9847 1.9033 0.6146 1.805 1.4465 8.2798 7.7765 ... 1.6563 7.329 101.7 3.8 7.964 8.443 72.3 1.5808 31.38 36.97
1 1 2000-01-04 1.5239 0.97 1.9238 0.6109 1.8405 1.4518 8.2799 7.7775 ... 1.6535 7.218 103.09 3.8 7.934 8.36 72.65 1.5565 30.6 37.13
2 2 2000-01-05 1.5267 0.9676 1.9339 0.6092 1.856 1.4518 8.2798 7.778 ... 1.656 7.208 103.77 3.8 7.935 8.353 72.95 1.5526 30.8 37.1
3 3 2000-01-06 1.5291 0.9686 1.9436 0.607 1.84 1.4571 8.2797 7.7785 ... 1.6655 7.2125 105.19 3.8 7.94 8.3675 72.95 1.554 31.75 37.62
4 4 2000-01-07 1.5272 0.9714 1.938 0.6104 1.831 1.4505 8.2794 7.7783 ... 1.6625 7.2285 105.17 3.8 7.966 8.415 73.15 1.5623 30.85 37.3

5 rows × 24 columns

```{python}
# Figuring out all of the columns (and their names) available for me to use in the dataset
df.columns
```
Index(['Unnamed: 0', 'Time Serie', 'AUSTRALIA - AUSTRALIAN DOLLAR/US$',
       'EURO AREA - EURO/US$', 'NEW ZEALAND - NEW ZELAND DOLLAR/US$',
       'UNITED KINGDOM - UNITED KINGDOM POUND/US$', 'BRAZIL - REAL/US$',
       'CANADA - CANADIAN DOLLAR/US$', 'CHINA - YUAN/US$',
       'HONG KONG - HONG KONG DOLLAR/US$', 'INDIA - INDIAN RUPEE/US$',
       'KOREA - WON/US$', 'MEXICO - MEXICAN PESO/US$',
       'SOUTH AFRICA - RAND/US$', 'SINGAPORE - SINGAPORE DOLLAR/US$',
       'DENMARK - DANISH KRONE/US$', 'JAPAN - YEN/US$',
       'MALAYSIA - RINGGIT/US$', 'NORWAY - NORWEGIAN KRONE/US$',
       'SWEDEN - KRONA/US$', 'SRI LANKA - SRI LANKAN RUPEE/US$',
       'SWITZERLAND - FRANC/US$', 'TAIWAN - NEW TAIWAN DOLLAR/US$',
       'THAILAND - BAHT/US$'],
      dtype='object')
```{python}
# Figuring out the number of duplicated elements in the dataset
# (could be problematic if not resolved)
df.duplicated().sum()
```
0
```{python}
# Figuring out the number of 'null'/'NaN' elements in the dataset 
# (if NaN filling is needed or not)
(df.isnull().sum() / df.shape[0]) * 100
```
Unnamed: 0                                   0.0
Time Serie                                   0.0
AUSTRALIA - AUSTRALIAN DOLLAR/US$            0.0
EURO AREA - EURO/US$                         0.0
NEW ZEALAND - NEW ZELAND DOLLAR/US$          0.0
UNITED KINGDOM - UNITED KINGDOM POUND/US$    0.0
BRAZIL - REAL/US$                            0.0
CANADA - CANADIAN DOLLAR/US$                 0.0
CHINA - YUAN/US$                             0.0
HONG KONG - HONG KONG DOLLAR/US$             0.0
INDIA - INDIAN RUPEE/US$                     0.0
KOREA - WON/US$                              0.0
MEXICO - MEXICAN PESO/US$                    0.0
SOUTH AFRICA - RAND/US$                      0.0
SINGAPORE - SINGAPORE DOLLAR/US$             0.0
DENMARK - DANISH KRONE/US$                   0.0
JAPAN - YEN/US$                              0.0
MALAYSIA - RINGGIT/US$                       0.0
NORWAY - NORWEGIAN KRONE/US$                 0.0
SWEDEN - KRONA/US$                           0.0
SRI LANKA - SRI LANKAN RUPEE/US$             0.0
SWITZERLAND - FRANC/US$                      0.0
TAIWAN - NEW TAIWAN DOLLAR/US$               0.0
THAILAND - BAHT/US$                          0.0
dtype: float64
```{python}
# Getting basic information about the dataset
df.info()
```
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5217 entries, 0 to 5216
Data columns (total 24 columns):
 #   Column                                     Non-Null Count  Dtype 
---  ------                                     --------------  ----- 
 0   Unnamed: 0                                 5217 non-null   int64 
 1   Time Serie                                 5217 non-null   object
 2   AUSTRALIA - AUSTRALIAN DOLLAR/US$          5217 non-null   object
 3   EURO AREA - EURO/US$                       5217 non-null   object
 4   NEW ZEALAND - NEW ZELAND DOLLAR/US$        5217 non-null   object
 5   UNITED KINGDOM - UNITED KINGDOM POUND/US$  5217 non-null   object
 6   BRAZIL - REAL/US$                          5217 non-null   object
 7   CANADA - CANADIAN DOLLAR/US$               5217 non-null   object
 8   CHINA - YUAN/US$                           5217 non-null   object
 9   HONG KONG - HONG KONG DOLLAR/US$           5217 non-null   object
 10  INDIA - INDIAN RUPEE/US$                   5217 non-null   object
 11  KOREA - WON/US$                            5217 non-null   object
 12  MEXICO - MEXICAN PESO/US$                  5217 non-null   object
 13  SOUTH AFRICA - RAND/US$                    5217 non-null   object
 14  SINGAPORE - SINGAPORE DOLLAR/US$           5217 non-null   object
 15  DENMARK - DANISH KRONE/US$                 5217 non-null   object
 16  JAPAN - YEN/US$                            5217 non-null   object
 17  MALAYSIA - RINGGIT/US$                     5217 non-null   object
 18  NORWAY - NORWEGIAN KRONE/US$               5217 non-null   object
 19  SWEDEN - KRONA/US$                         5217 non-null   object
 20  SRI LANKA - SRI LANKAN RUPEE/US$           5217 non-null   object
 21  SWITZERLAND - FRANC/US$                    5217 non-null   object
 22  TAIWAN - NEW TAIWAN DOLLAR/US$             5217 non-null   object
 23  THAILAND - BAHT/US$                        5217 non-null   object
dtypes: int64(1), object(23)
memory usage: 978.3+ KB

Additionally, before handing my combined Book dataset over for Machine Learning training and prediction, I need to clean the data prior to the analysis stage: removing duplicates, deleting null/NaN vales, fixing types of columns, filling invalid values with suitable alternatives, etc.

```{python}
# Removing unnecessary/unnamed columns in the dataset
df = df.drop("Unnamed: 0", axis=1)
df
```
Time Serie AUSTRALIA - AUSTRALIAN DOLLAR/US$ EURO AREA - EURO/US$ NEW ZEALAND - NEW ZELAND DOLLAR/US$ UNITED KINGDOM - UNITED KINGDOM POUND/US$ BRAZIL - REAL/US$ CANADA - CANADIAN DOLLAR/US$ CHINA - YUAN/US$ HONG KONG - HONG KONG DOLLAR/US$ INDIA - INDIAN RUPEE/US$ ... SINGAPORE - SINGAPORE DOLLAR/US$ DENMARK - DANISH KRONE/US$ JAPAN - YEN/US$ MALAYSIA - RINGGIT/US$ NORWAY - NORWEGIAN KRONE/US$ SWEDEN - KRONA/US$ SRI LANKA - SRI LANKAN RUPEE/US$ SWITZERLAND - FRANC/US$ TAIWAN - NEW TAIWAN DOLLAR/US$ THAILAND - BAHT/US$
0 2000-01-03 1.5172 0.9847 1.9033 0.6146 1.805 1.4465 8.2798 7.7765 43.55 ... 1.6563 7.329 101.7 3.8 7.964 8.443 72.3 1.5808 31.38 36.97
1 2000-01-04 1.5239 0.97 1.9238 0.6109 1.8405 1.4518 8.2799 7.7775 43.55 ... 1.6535 7.218 103.09 3.8 7.934 8.36 72.65 1.5565 30.6 37.13
2 2000-01-05 1.5267 0.9676 1.9339 0.6092 1.856 1.4518 8.2798 7.778 43.55 ... 1.656 7.208 103.77 3.8 7.935 8.353 72.95 1.5526 30.8 37.1
3 2000-01-06 1.5291 0.9686 1.9436 0.607 1.84 1.4571 8.2797 7.7785 43.55 ... 1.6655 7.2125 105.19 3.8 7.94 8.3675 72.95 1.554 31.75 37.62
4 2000-01-07 1.5272 0.9714 1.938 0.6104 1.831 1.4505 8.2794 7.7783 43.55 ... 1.6625 7.2285 105.17 3.8 7.966 8.415 73.15 1.5623 30.85 37.3
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
5212 2019-12-25 ND ND ND ND ND ND ND ND ND ... ND ND ND ND ND ND ND ND ND ND
5213 2019-12-26 1.4411 0.9007 1.5002 0.7688 4.0602 1.3124 6.9949 7.788 71.28 ... 1.354 6.7295 109.67 4.1337 8.8799 9.4108 181.3 0.9808 30.11 30.15
5214 2019-12-27 1.4331 0.8949 1.4919 0.7639 4.0507 1.3073 6.9954 7.7874 71.45 ... 1.352 6.6829 109.47 4.126 8.8291 9.3405 181.35 0.9741 30.09 30.14
5215 2019-12-30 1.4278 0.8915 1.4846 0.761 4.0152 1.3058 6.9864 7.7857 71.3 ... 1.3483 6.6589 108.85 4.1053 8.7839 9.3145 181.6 0.9677 30.04 29.94
5216 2019-12-31 1.4225 0.8907 1.4826 0.7536 4.019 1.2962 6.9618 7.7894 71.36 ... 1.3446 6.6554 108.67 4.0918 8.7823 9.3425 181.3 0.9677 29.91 29.75

5217 rows × 23 columns

```{python}
# Converting the date column into a string representation to a parsable
# Datetime object (needed for later)
df = df.rename(columns={"Time Serie": "DATE"})

def str_to_datetime(date_str: str):
    split = tuple(date_str.split("-"))
    year, month, day = int(split[0]), int(split[1]), int(split[2])
    return dt.datetime(year, month, day)

df["DATE"] = df["DATE"].apply(str_to_datetime)
df["DATE"]
```
0      2000-01-03
1      2000-01-04
2      2000-01-05
3      2000-01-06
4      2000-01-07
          ...    
5212   2019-12-25
5213   2019-12-26
5214   2019-12-27
5215   2019-12-30
5216   2019-12-31
Name: DATE, Length: 5217, dtype: datetime64[ns]

As shown below, I had decided to filter out all of the countries except Austrailia, Canada, the United Kingdom, and Switzerland because those countries had the most stable and consistent international currency rates as well as the most comparable (1:1) currency rates with the United States. One additional reason that these countries were selected for this blog post was do the geographical diversity covered most landmass continents across the world, representative of the global market interactions that the United States deals with on a day-to-day basis.

```{python}
# Making the "Date" column the new index (better identifer/key in dataset)
# Taking out other countries except Austrailia, Canada, UK, and 
# Switzerland from dataset for Machine Learning blog post
df.index = df.pop("DATE")
df = df[["AUSTRALIA - AUSTRALIAN DOLLAR/US$", 
         "CANADA - CANADIAN DOLLAR/US$",
         "UNITED KINGDOM - UNITED KINGDOM POUND/US$",
         "SWITZERLAND - FRANC/US$"]]
df
```
AUSTRALIA - AUSTRALIAN DOLLAR/US$ CANADA - CANADIAN DOLLAR/US$ UNITED KINGDOM - UNITED KINGDOM POUND/US$ SWITZERLAND - FRANC/US$
DATE
2000-01-03 1.5172 1.4465 0.6146 1.5808
2000-01-04 1.5239 1.4518 0.6109 1.5565
2000-01-05 1.5267 1.4518 0.6092 1.5526
2000-01-06 1.5291 1.4571 0.607 1.554
2000-01-07 1.5272 1.4505 0.6104 1.5623
... ... ... ... ...
2019-12-25 ND ND ND ND
2019-12-26 1.4411 1.3124 0.7688 0.9808
2019-12-27 1.4331 1.3073 0.7639 0.9741
2019-12-30 1.4278 1.3058 0.761 0.9677
2019-12-31 1.4225 1.2962 0.7536 0.9677

5217 rows × 4 columns

```{python}
# Converting of all numerical international currency rates to 2-decimal 
# rates (easier to work with for later)
for col in df:
    df[col] = df[col].map(lambda entry: entry if entry == "ND" else round(float(entry), 2))
df
```
AUSTRALIA - AUSTRALIAN DOLLAR/US$ CANADA - CANADIAN DOLLAR/US$ UNITED KINGDOM - UNITED KINGDOM POUND/US$ SWITZERLAND - FRANC/US$
DATE
2000-01-03 1.52 1.45 0.61 1.58
2000-01-04 1.52 1.45 0.61 1.56
2000-01-05 1.53 1.45 0.61 1.55
2000-01-06 1.53 1.46 0.61 1.55
2000-01-07 1.53 1.45 0.61 1.56
... ... ... ... ...
2019-12-25 ND ND ND ND
2019-12-26 1.44 1.31 0.77 0.98
2019-12-27 1.43 1.31 0.76 0.97
2019-12-30 1.43 1.31 0.76 0.97
2019-12-31 1.42 1.3 0.75 0.97

5217 rows × 4 columns

```{python}
# Removing all of the dated rows that contains "ND" as a way to avoid problems 
# when trying to interlay Machine Learning algorithms that require only
# quantitative data with categorical entries
nd_index_list: set[str] = set()
for row_index, _ in df.iterrows():
    for col_entry in df.loc[row_index]:
        if col_entry == "ND":
             nd_index_list.add(row_index)

df = df.drop(labels=list(nd_index_list), axis=0)
df
```
AUSTRALIA - AUSTRALIAN DOLLAR/US$ CANADA - CANADIAN DOLLAR/US$ UNITED KINGDOM - UNITED KINGDOM POUND/US$ SWITZERLAND - FRANC/US$
DATE
2000-01-03 1.52 1.45 0.61 1.58
2000-01-04 1.52 1.45 0.61 1.56
2000-01-05 1.53 1.45 0.61 1.55
2000-01-06 1.53 1.46 0.61 1.55
2000-01-07 1.53 1.45 0.61 1.56
... ... ... ... ...
2019-12-24 1.44 1.32 0.77 0.98
2019-12-26 1.44 1.31 0.77 0.98
2019-12-27 1.43 1.31 0.76 0.97
2019-12-30 1.43 1.31 0.76 0.97
2019-12-31 1.42 1.3 0.75 0.97

5019 rows × 4 columns

As shown in the code snippet below, with some online references, the df_to_windowed_df function describes a way to use prediction values. A new international currency rate dataframe is created which includes the rows encompassing the 3 previous dates prior to the current date of when the international currency rate was reported as well as the current rate that day. This would be helpful for later Machine Learning predictions because the previous 3 dates and the current will provide it enough context to make more insightful predictions on the future of the international currency rates between that respective country specified and the United States. Later, as you will see, the 3 previous days are going to be the input and the current currency rate (Target) will be our output.

```{python}
def df_to_windowed_df(data_frame: pd.DataFrame, first_date_str: str, last_date_str: str, n: int, col_name: str):
    first_date = str_to_datetime(first_date_str)
    last_date = str_to_datetime(last_date_str)
    
    target_date = first_date
    
    dates: list = []
    X: list = []
    Y: list = []
    
    last_time = False
    while True:
        df_subset = data_frame.loc[:target_date].tail(n + 1)
        
        if (len(df_subset) != n + 1):
            print("Error: Window of size " + str(n) + " is too large for date " + str(target_date))
            return
        
        values = df_subset[col_name].to_numpy()
        x, y = values[:-1], values[-1]
        
        dates.append(target_date)
        X.append(x)
        Y.append(y)
        
        next_week = data_frame.loc[target_date:target_date + dt.timedelta(days=7)]
        next_datetime_str = str(next_week.head(2).tail(1).index.values[0])
        next_date_str = next_datetime_str.split("T")[0]
        year_month_day = next_date_str.split("-")
        year, month, day = year_month_day
        next_date = dt.datetime(year=int(year), month=int(month), day=int(day))
        
        if last_time:
            break
        
        target_date = next_date
        if (target_date == last_date):
            last_time = True
    
    returned_df = pd.DataFrame({})
    returned_df["Target Date"] = dates
    
    X = np.array(X)
    for i in range(0, n):
        X[:, i]
        returned_df["Target-" + str(n - i)] = X[:, i]
    returned_df["Target"] = Y
    
    return returned_df 
```

Thus, with the df_to_windowed_df function created, we created one for every country to later use for Machine Learning model training and eventual predictions of future rates: Austrailia, Canada, the United Kingdom, and Switzerland.

```{python}
# Convert Austrailia's dataframe to a windowed dataframe
windowed_df_austrailia = df_to_windowed_df(data_frame=df, 
                                first_date_str="2000-01-06",
                                last_date_str="2019-12-31",
                                n=3,
                                col_name="AUSTRALIA - AUSTRALIAN DOLLAR/US$")
windowed_df_austrailia  
```
Target Date Target-3 Target-2 Target-1 Target
0 2000-01-06 1.52 1.52 1.53 1.53
1 2000-01-07 1.52 1.53 1.53 1.53
2 2000-01-10 1.53 1.53 1.53 1.52
3 2000-01-11 1.53 1.53 1.52 1.52
4 2000-01-12 1.53 1.52 1.52 1.52
... ... ... ... ... ...
5011 2019-12-24 1.45 1.45 1.45 1.44
5012 2019-12-26 1.45 1.45 1.44 1.44
5013 2019-12-27 1.45 1.44 1.44 1.43
5014 2019-12-30 1.44 1.44 1.43 1.43
5015 2019-12-31 1.44 1.43 1.43 1.42

5016 rows × 5 columns

```{python}
# Convert Canada's dataframe to a windowed dataframe
windowed_df_canada = df_to_windowed_df(data_frame=df, 
                                first_date_str="2000-01-06",
                                last_date_str="2019-12-31",
                                n=3,
                                col_name="CANADA - CANADIAN DOLLAR/US$")
windowed_df_canada
```
Target Date Target-3 Target-2 Target-1 Target
0 2000-01-06 1.45 1.45 1.45 1.46
1 2000-01-07 1.45 1.45 1.46 1.45
2 2000-01-10 1.45 1.46 1.45 1.46
3 2000-01-11 1.46 1.45 1.46 1.46
4 2000-01-12 1.45 1.46 1.46 1.46
... ... ... ... ... ...
5011 2019-12-24 1.31 1.32 1.32 1.32
5012 2019-12-26 1.32 1.32 1.32 1.31
5013 2019-12-27 1.32 1.32 1.31 1.31
5014 2019-12-30 1.32 1.31 1.31 1.31
5015 2019-12-31 1.31 1.31 1.31 1.30

5016 rows × 5 columns

```{python}
# Convert United Kingdom's dataframe to a windowed dataframe
windowed_df_united_kingdom = df_to_windowed_df(data_frame=df, 
                                first_date_str="2000-01-06",
                                last_date_str="2019-12-31",
                                n=3,
                                col_name="UNITED KINGDOM - UNITED KINGDOM POUND/US$")
windowed_df_united_kingdom
```
Target Date Target-3 Target-2 Target-1 Target
0 2000-01-06 0.61 0.61 0.61 0.61
1 2000-01-07 0.61 0.61 0.61 0.61
2 2000-01-10 0.61 0.61 0.61 0.61
3 2000-01-11 0.61 0.61 0.61 0.61
4 2000-01-12 0.61 0.61 0.61 0.61
... ... ... ... ... ...
5011 2019-12-24 0.77 0.77 0.77 0.77
5012 2019-12-26 0.77 0.77 0.77 0.77
5013 2019-12-27 0.77 0.77 0.77 0.76
5014 2019-12-30 0.77 0.77 0.76 0.76
5015 2019-12-31 0.77 0.76 0.76 0.75

5016 rows × 5 columns

```{python}
# Convert Switzerland's dataframe to a windowed dataframe
windowed_df_switzerland = df_to_windowed_df(data_frame=df, 
                                first_date_str="2000-01-06",
                                last_date_str="2019-12-31",
                                n=3,
                                col_name="SWITZERLAND - FRANC/US$")
windowed_df_switzerland
```
Target Date Target-3 Target-2 Target-1 Target
0 2000-01-06 1.58 1.56 1.55 1.55
1 2000-01-07 1.56 1.55 1.55 1.56
2 2000-01-10 1.55 1.55 1.56 1.57
3 2000-01-11 1.55 1.56 1.57 1.56
4 2000-01-12 1.56 1.57 1.56 1.57
... ... ... ... ... ...
5011 2019-12-24 0.98 0.98 0.98 0.98
5012 2019-12-26 0.98 0.98 0.98 0.98
5013 2019-12-27 0.98 0.98 0.98 0.97
5014 2019-12-30 0.98 0.98 0.97 0.97
5015 2019-12-31 0.98 0.97 0.97 0.97

5016 rows × 5 columns

As the Machine Learning model that will be used later in this blog post only accepts numpy arrays, we need to extract each of the following quantities from each respective country’s dataframe: the dates as an np.array, the X-values for input as an 3-dimensional np.array, and the Y-values for output as an np.array. Thus, with some online references, our codebase now has a function called windowed_df_to_date_X_y as shown below to account for this needed transformation.

```{python}
def windowed_df_to_date_X_y(windowed_dataframe: pd.DataFrame):
    df_as_np = windowed_dataframe.to_numpy()
    
    dates = df_as_np[:, 0]
    
    middle_matrix = df_as_np[:, 1:-1]
    X = middle_matrix.reshape((len(dates), middle_matrix.shape[1], 1))
    Y = df_as_np[:, -1]
    
    return dates, X.astype(np.float32), Y.astype(np.float32)

dates_austrailia, X_austrailia, y_austrailia = windowed_df_to_date_X_y(windowed_dataframe=windowed_df_austrailia)
dates_canada, X_canada, y_canada = windowed_df_to_date_X_y(windowed_dataframe=windowed_df_canada)
dates_united_kingdom, X_united_kingdom, y_united_kingdom = windowed_df_to_date_X_y(windowed_dataframe=windowed_df_united_kingdom)
dates_switzerland, X_switzerland, y_switzerland = windowed_df_to_date_X_y(windowed_dataframe=windowed_df_switzerland)

print(dates_austrailia.shape, X_austrailia.shape, y_austrailia.shape)
print(dates_canada.shape, X_canada.shape, y_canada.shape)
print(dates_united_kingdom.shape, X_united_kingdom.shape, y_united_kingdom.shape)
print(dates_switzerland.shape, X_switzerland.shape, y_switzerland.shape)
len(windowed_df_austrailia), len(windowed_df_canada), len(windowed_df_united_kingdom), len(windowed_df_switzerland)
```
(5016,) (5016, 3, 1) (5016,)
(5016,) (5016, 3, 1) (5016,)
(5016,) (5016, 3, 1) (5016,)
(5016,) (5016, 3, 1) (5016,)
(5016, 5016, 5016, 5016)

Here, I am trying to a visualization of the cleaned dataset before we pass it over for Machine Learning training and prediction. To show the rate of change for the International Currency Rates for Austrailia, Canada, the United Kingdom, and Switzerland over the 20-year period as collected in the data set, I put together a line graph as shown below.

```{python}
# Plotting the each four countries currency rates (per US dollar) from 
# 2000 - 2020
plt.plot(df.index, df["AUSTRALIA - AUSTRALIAN DOLLAR/US$"], label="AUS to USD", linewidth=1)
plt.plot(df.index, df[ "CANADA - CANADIAN DOLLAR/US$"], label="CAN to USD", linewidth=1)
plt.plot(df.index, df["UNITED KINGDOM - UNITED KINGDOM POUND/US$"], label="GBR to USD", linewidth=1)
plt.plot(df.index, df["SWITZERLAND - FRANC/US$"], label="CHE to USD", linewidth=1)

plt.legend(loc="upper right")
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date", fontsize=12)
plt.ylabel("Currency Rate of the Respective Country to USD", fontsize=12)
plt.title("Culmination of the All Four Countries' Datasets - After Parsing But Before Machine Learning Alterations")
plt.show()
```

Machine Learning - Model Training and Evaluation

Great, now we are onto the Machine Learning part of the blog post!

For this blog post, I worked to create Machine Learning models for each country’s dataset separately. I started with Austrailia’s data first (as shown below):

```{python}
# Getting the location of the 80th and 90th percentile of the number of points 
# in the dataset for later train, vailidation, and test category splitting
percentile_80 = int(len(windowed_df_austrailia) * 0.8)
percentile_90 = int(len(windowed_df_austrailia) * 0.9)
percentile_80, percentile_90
```
(4012, 4514)

Since the data (date, X, and y) is split into three np.arrays and to be more efficient, I will manually split Austrailia’s data into train, test, and validation datasets for the Machine Learning model with 80% going to the training dataset, the next 10% going to the validation dataset, and the last 10% going to the test dataset for each np.array respectively. This split should be acceptable because I did not mix-and-match training & validation datasets with my testing datasets, wihch would invalidate my entire Machine Learning model. Additionally, looking at the presented in the validation and testing datasets, the range of these respective datasets have been reached before in my training dataset, meaning I anticipated my model should be able to reasonably predict these expected ranges with considerable accuracy.

```{python}
# Splitting Austrailia's data into train, test, and validation sets on 3 
# mediums: the X-axis, the y-axis, and the indices (represented by dates)
dates_austrailia_train, X_austrailia_train, y_austrailia_train = dates_austrailia[:percentile_80], X_austrailia[:percentile_80], y_austrailia[:percentile_80]
dates_austrailia_val, X_austrailia_val, y_austrailia_val = dates_austrailia[percentile_80:percentile_90], X_austrailia[percentile_80:percentile_90], y_austrailia[percentile_80:percentile_90]
dates_austrailia_test, X_austrailia_test, y_austrailia_test = dates_austrailia[percentile_90:], X_austrailia[percentile_90:], y_austrailia[percentile_90:]

plt.plot(dates_austrailia_train, y_austrailia_train, linewidth=1)
plt.plot(dates_austrailia_val, y_austrailia_val, linewidth=1)
plt.plot(dates_austrailia_test, y_austrailia_test, linewidth=1)

plt.legend(["Training", "Validation", "Testing"])
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("Split of Austrailia's Data for LSTM Model")
plt.show()
```

Now, I began to configure the Machine Learning model. We added Sequential layers: an Input layer 3 by 1 because we will have 3 np.arrays of Input and 1 np.array as output, utilize a LSTM (Long Short-Term Memory) layer of 64 neurons, apply 2 levels of dense layers with 32 neurons and folliowing recommendations online to use the RELU (Rectified Linear Unit) Activiation Function, and I followed up with one last dense layer of 1 neuron as our output layer since we are just trying to linearly-predict the next currency-rate on a near-future date. Once I configured the Sequential layers, we are ready to compile the model, utilzing the mean_square_error as our minimizing loss function, using the Adam optimizer, and comparing our trained model against our data with the mean_absolute_error metric. Lastly, I fitted our model, utilzing our X_train and Y_train datasets for fitting with validation from our X_valid and Y_valid datasets at 100 epochs.

```{python}
# Configuring the Machine Learning Tensorflow Model for Austrailia
austrailia_model = Sequential([layers.Input((3, 1)),
                    layers.LSTM(64),
                    layers.Dense(32, activation="relu"),
                    layers.Dense(32, activation="relu"),
                    layers.Dense(1)])

austrailia_model.compile(loss="mse",
              optimizer=Adam(learning_rate=0.001),
              metrics=["mean_absolute_error"])

austrailia_model.fit(X_austrailia_train, y_austrailia_train, validation_data=(X_austrailia_val, y_austrailia_val), epochs=100)
```
Epoch 1/100
  1/126 [..............................] - ETA: 3:49 - loss: 1.9734 - mean_absolute_error: 1.3728 22/126 [====>.........................] - ETA: 0s - loss: 1.3943 - mean_absolute_error: 1.1414   47/126 [==========>...................] - ETA: 0s - loss: 0.7960 - mean_absolute_error: 0.7599 72/126 [================>.............] - ETA: 0s - loss: 0.5267 - mean_absolute_error: 0.5350 97/126 [======================>.......] - ETA: 0s - loss: 0.3929 - mean_absolute_error: 0.4163122/126 [============================>.] - ETA: 0s - loss: 0.3135 - mean_absolute_error: 0.3434126/126 [==============================] - 3s 6ms/step - loss: 0.3051 - mean_absolute_error: 0.3355 - val_loss: 3.9797e-04 - val_mean_absolute_error: 0.0172
Epoch 2/100
  1/126 [..............................] - ETA: 0s - loss: 0.0048 - mean_absolute_error: 0.0625 23/126 [====>.........................] - ETA: 0s - loss: 0.0039 - mean_absolute_error: 0.0525 46/126 [=========>....................] - ETA: 0s - loss: 0.0035 - mean_absolute_error: 0.0497 68/126 [===============>..............] - ETA: 0s - loss: 0.0031 - mean_absolute_error: 0.0469 92/126 [====================>.........] - ETA: 0s - loss: 0.0028 - mean_absolute_error: 0.0438119/126 [===========================>..] - ETA: 0s - loss: 0.0024 - mean_absolute_error: 0.0406126/126 [==============================] - 0s 2ms/step - loss: 0.0024 - mean_absolute_error: 0.0399 - val_loss: 1.6066e-04 - val_mean_absolute_error: 0.0103
Epoch 3/100
  1/126 [..............................] - ETA: 0s - loss: 0.0013 - mean_absolute_error: 0.0303 23/126 [====>.........................] - ETA: 0s - loss: 8.6128e-04 - mean_absolute_error: 0.0242 49/126 [==========>...................] - ETA: 0s - loss: 7.5785e-04 - mean_absolute_error: 0.0224 73/126 [================>.............] - ETA: 0s - loss: 6.7276e-04 - mean_absolute_error: 0.0208 99/126 [======================>.......] - ETA: 0s - loss: 5.9200e-04 - mean_absolute_error: 0.0193124/126 [============================>.] - ETA: 0s - loss: 5.4251e-04 - mean_absolute_error: 0.0182126/126 [==============================] - 0s 2ms/step - loss: 5.4054e-04 - mean_absolute_error: 0.0181 - val_loss: 1.3494e-04 - val_mean_absolute_error: 0.0090
Epoch 4/100
  1/126 [..............................] - ETA: 0s - loss: 3.2182e-04 - mean_absolute_error: 0.0142 18/126 [===>..........................] - ETA: 0s - loss: 2.8738e-04 - mean_absolute_error: 0.0129 38/126 [========>.....................] - ETA: 0s - loss: 2.6581e-04 - mean_absolute_error: 0.0126 62/126 [=============>................] - ETA: 0s - loss: 2.7329e-04 - mean_absolute_error: 0.0126 87/126 [===================>..........] - ETA: 0s - loss: 2.8504e-04 - mean_absolute_error: 0.0126112/126 [=========================>....] - ETA: 0s - loss: 2.8659e-04 - mean_absolute_error: 0.0125126/126 [==============================] - 0s 3ms/step - loss: 2.8368e-04 - mean_absolute_error: 0.0125 - val_loss: 1.4282e-04 - val_mean_absolute_error: 0.0093
Epoch 5/100
  1/126 [..............................] - ETA: 0s - loss: 6.5165e-04 - mean_absolute_error: 0.0158 24/126 [====>.........................] - ETA: 0s - loss: 3.6778e-04 - mean_absolute_error: 0.0130 50/126 [==========>...................] - ETA: 0s - loss: 3.0182e-04 - mean_absolute_error: 0.0125 75/126 [================>.............] - ETA: 0s - loss: 2.8030e-04 - mean_absolute_error: 0.0122 99/126 [======================>.......] - ETA: 0s - loss: 2.7450e-04 - mean_absolute_error: 0.0121125/126 [============================>.] - ETA: 0s - loss: 2.6800e-04 - mean_absolute_error: 0.0119126/126 [==============================] - 0s 2ms/step - loss: 2.6785e-04 - mean_absolute_error: 0.0119 - val_loss: 1.3098e-04 - val_mean_absolute_error: 0.0089
Epoch 6/100
  1/126 [..............................] - ETA: 0s - loss: 2.0439e-04 - mean_absolute_error: 0.0112 25/126 [====>.........................] - ETA: 0s - loss: 2.5072e-04 - mean_absolute_error: 0.0121 51/126 [===========>..................] - ETA: 0s - loss: 2.6118e-04 - mean_absolute_error: 0.0119 75/126 [================>.............] - ETA: 0s - loss: 2.7124e-04 - mean_absolute_error: 0.0120100/126 [======================>.......] - ETA: 0s - loss: 2.7441e-04 - mean_absolute_error: 0.0120126/126 [==============================] - 0s 2ms/step - loss: 2.7248e-04 - mean_absolute_error: 0.0120 - val_loss: 1.4727e-04 - val_mean_absolute_error: 0.0095
Epoch 7/100
  1/126 [..............................] - ETA: 0s - loss: 1.7711e-04 - mean_absolute_error: 0.0105 24/126 [====>.........................] - ETA: 0s - loss: 2.7358e-04 - mean_absolute_error: 0.0122 50/126 [==========>...................] - ETA: 0s - loss: 2.5428e-04 - mean_absolute_error: 0.0119 74/126 [================>.............] - ETA: 0s - loss: 2.5947e-04 - mean_absolute_error: 0.0120 96/126 [=====================>........] - ETA: 0s - loss: 2.6404e-04 - mean_absolute_error: 0.0120122/126 [============================>.] - ETA: 0s - loss: 2.7051e-04 - mean_absolute_error: 0.0120126/126 [==============================] - 0s 2ms/step - loss: 2.7419e-04 - mean_absolute_error: 0.0120 - val_loss: 1.6695e-04 - val_mean_absolute_error: 0.0101
Epoch 8/100
  1/126 [..............................] - ETA: 0s - loss: 1.8258e-04 - mean_absolute_error: 0.0114 25/126 [====>.........................] - ETA: 0s - loss: 2.8696e-04 - mean_absolute_error: 0.0122 52/126 [===========>..................] - ETA: 0s - loss: 2.8437e-04 - mean_absolute_error: 0.0120 76/126 [=================>............] - ETA: 0s - loss: 2.8158e-04 - mean_absolute_error: 0.0119101/126 [=======================>......] - ETA: 0s - loss: 2.7222e-04 - mean_absolute_error: 0.0119122/126 [============================>.] - ETA: 0s - loss: 2.7349e-04 - mean_absolute_error: 0.0120126/126 [==============================] - 0s 2ms/step - loss: 2.7059e-04 - mean_absolute_error: 0.0120 - val_loss: 1.3505e-04 - val_mean_absolute_error: 0.0090
Epoch 9/100
  1/126 [..............................] - ETA: 0s - loss: 2.2175e-04 - mean_absolute_error: 0.0110 23/126 [====>.........................] - ETA: 0s - loss: 2.3464e-04 - mean_absolute_error: 0.0113 49/126 [==========>...................] - ETA: 0s - loss: 2.6646e-04 - mean_absolute_error: 0.0118 75/126 [================>.............] - ETA: 0s - loss: 2.6011e-04 - mean_absolute_error: 0.0118101/126 [=======================>......] - ETA: 0s - loss: 2.6611e-04 - mean_absolute_error: 0.0119126/126 [==============================] - 0s 2ms/step - loss: 2.6541e-04 - mean_absolute_error: 0.0118 - val_loss: 2.1705e-04 - val_mean_absolute_error: 0.0118
Epoch 10/100
  1/126 [..............................] - ETA: 0s - loss: 4.2326e-04 - mean_absolute_error: 0.0130 22/126 [====>.........................] - ETA: 0s - loss: 3.2720e-04 - mean_absolute_error: 0.0128 48/126 [==========>...................] - ETA: 0s - loss: 2.8364e-04 - mean_absolute_error: 0.0121 74/126 [================>.............] - ETA: 0s - loss: 2.8080e-04 - mean_absolute_error: 0.0120 98/126 [======================>.......] - ETA: 0s - loss: 2.7308e-04 - mean_absolute_error: 0.0119117/126 [==========================>...] - ETA: 0s - loss: 2.7072e-04 - mean_absolute_error: 0.0119126/126 [==============================] - 0s 3ms/step - loss: 2.7371e-04 - mean_absolute_error: 0.0120 - val_loss: 1.2563e-04 - val_mean_absolute_error: 0.0088
Epoch 11/100
  1/126 [..............................] - ETA: 0s - loss: 2.0411e-04 - mean_absolute_error: 0.0115 25/126 [====>.........................] - ETA: 0s - loss: 2.4451e-04 - mean_absolute_error: 0.0117 51/126 [===========>..................] - ETA: 0s - loss: 2.6110e-04 - mean_absolute_error: 0.0120 76/126 [=================>............] - ETA: 0s - loss: 2.7357e-04 - mean_absolute_error: 0.0120102/126 [=======================>......] - ETA: 0s - loss: 2.7543e-04 - mean_absolute_error: 0.0120126/126 [==============================] - 0s 2ms/step - loss: 2.6997e-04 - mean_absolute_error: 0.0119 - val_loss: 1.3734e-04 - val_mean_absolute_error: 0.0091
Epoch 12/100
  1/126 [..............................] - ETA: 0s - loss: 2.0522e-04 - mean_absolute_error: 0.0115 19/126 [===>..........................] - ETA: 0s - loss: 2.5249e-04 - mean_absolute_error: 0.0118 44/126 [=========>....................] - ETA: 0s - loss: 2.4317e-04 - mean_absolute_error: 0.0117 69/126 [===============>..............] - ETA: 0s - loss: 2.5942e-04 - mean_absolute_error: 0.0118 96/126 [=====================>........] - ETA: 0s - loss: 2.6877e-04 - mean_absolute_error: 0.0118123/126 [============================>.] - ETA: 0s - loss: 2.6656e-04 - mean_absolute_error: 0.0118126/126 [==============================] - 0s 2ms/step - loss: 2.6711e-04 - mean_absolute_error: 0.0118 - val_loss: 1.2960e-04 - val_mean_absolute_error: 0.0089
Epoch 13/100
  1/126 [..............................] - ETA: 0s - loss: 1.9772e-04 - mean_absolute_error: 0.0112 20/126 [===>..........................] - ETA: 0s - loss: 2.9496e-04 - mean_absolute_error: 0.0123 45/126 [=========>....................] - ETA: 0s - loss: 3.0058e-04 - mean_absolute_error: 0.0125 72/126 [================>.............] - ETA: 0s - loss: 2.8230e-04 - mean_absolute_error: 0.0121 98/126 [======================>.......] - ETA: 0s - loss: 2.7811e-04 - mean_absolute_error: 0.0120124/126 [============================>.] - ETA: 0s - loss: 2.6808e-04 - mean_absolute_error: 0.0119126/126 [==============================] - 0s 2ms/step - loss: 2.6722e-04 - mean_absolute_error: 0.0119 - val_loss: 1.2718e-04 - val_mean_absolute_error: 0.0088
Epoch 14/100
  1/126 [..............................] - ETA: 0s - loss: 3.3532e-04 - mean_absolute_error: 0.0135 17/126 [===>..........................] - ETA: 0s - loss: 3.5962e-04 - mean_absolute_error: 0.0131 38/126 [========>.....................] - ETA: 0s - loss: 3.0196e-04 - mean_absolute_error: 0.0122 65/126 [==============>...............] - ETA: 0s - loss: 2.7197e-04 - mean_absolute_error: 0.0117 91/126 [====================>.........] - ETA: 0s - loss: 2.7580e-04 - mean_absolute_error: 0.0118117/126 [==========================>...] - ETA: 0s - loss: 2.6610e-04 - mean_absolute_error: 0.0118126/126 [==============================] - 0s 3ms/step - loss: 2.6481e-04 - mean_absolute_error: 0.0118 - val_loss: 1.3093e-04 - val_mean_absolute_error: 0.0089
Epoch 15/100
  1/126 [..............................] - ETA: 0s - loss: 2.1035e-04 - mean_absolute_error: 0.0104 24/126 [====>.........................] - ETA: 0s - loss: 2.2464e-04 - mean_absolute_error: 0.0110 44/126 [=========>....................] - ETA: 0s - loss: 2.4095e-04 - mean_absolute_error: 0.0114 65/126 [==============>...............] - ETA: 0s - loss: 2.4743e-04 - mean_absolute_error: 0.0115 90/126 [====================>.........] - ETA: 0s - loss: 2.6430e-04 - mean_absolute_error: 0.0117115/126 [==========================>...] - ETA: 0s - loss: 2.6406e-04 - mean_absolute_error: 0.0117126/126 [==============================] - 0s 3ms/step - loss: 2.6297e-04 - mean_absolute_error: 0.0117 - val_loss: 2.2650e-04 - val_mean_absolute_error: 0.0121
Epoch 16/100
  1/126 [..............................] - ETA: 0s - loss: 4.4781e-04 - mean_absolute_error: 0.0153 22/126 [====>.........................] - ETA: 0s - loss: 2.9127e-04 - mean_absolute_error: 0.0119 48/126 [==========>...................] - ETA: 0s - loss: 3.1136e-04 - mean_absolute_error: 0.0124 74/126 [================>.............] - ETA: 0s - loss: 2.8144e-04 - mean_absolute_error: 0.0121 99/126 [======================>.......] - ETA: 0s - loss: 2.8000e-04 - mean_absolute_error: 0.0121124/126 [============================>.] - ETA: 0s - loss: 2.7552e-04 - mean_absolute_error: 0.0121126/126 [==============================] - 0s 2ms/step - loss: 2.7497e-04 - mean_absolute_error: 0.0121 - val_loss: 1.4424e-04 - val_mean_absolute_error: 0.0097
Epoch 17/100
  1/126 [..............................] - ETA: 0s - loss: 1.9521e-04 - mean_absolute_error: 0.0114 19/126 [===>..........................] - ETA: 0s - loss: 3.1759e-04 - mean_absolute_error: 0.0125 43/126 [=========>....................] - ETA: 0s - loss: 2.7030e-04 - mean_absolute_error: 0.0121 70/126 [===============>..............] - ETA: 0s - loss: 2.7567e-04 - mean_absolute_error: 0.0121 96/126 [=====================>........] - ETA: 0s - loss: 2.6577e-04 - mean_absolute_error: 0.0120122/126 [============================>.] - ETA: 0s - loss: 2.7267e-04 - mean_absolute_error: 0.0120126/126 [==============================] - 0s 2ms/step - loss: 2.7060e-04 - mean_absolute_error: 0.0119 - val_loss: 1.2552e-04 - val_mean_absolute_error: 0.0088
Epoch 18/100
  1/126 [..............................] - ETA: 0s - loss: 1.7047e-04 - mean_absolute_error: 0.0105 19/126 [===>..........................] - ETA: 0s - loss: 2.9380e-04 - mean_absolute_error: 0.0124 37/126 [=======>......................] - ETA: 0s - loss: 2.7409e-04 - mean_absolute_error: 0.0122 58/126 [============>.................] - ETA: 0s - loss: 2.8370e-04 - mean_absolute_error: 0.0123 82/126 [==================>...........] - ETA: 0s - loss: 2.9611e-04 - mean_absolute_error: 0.0124108/126 [========================>.....] - ETA: 0s - loss: 2.8737e-04 - mean_absolute_error: 0.0123126/126 [==============================] - 0s 3ms/step - loss: 2.8057e-04 - mean_absolute_error: 0.0122 - val_loss: 1.3462e-04 - val_mean_absolute_error: 0.0090
Epoch 19/100
  1/126 [..............................] - ETA: 0s - loss: 1.9024e-04 - mean_absolute_error: 0.0109 22/126 [====>.........................] - ETA: 0s - loss: 3.1790e-04 - mean_absolute_error: 0.0128 47/126 [==========>...................] - ETA: 0s - loss: 2.8091e-04 - mean_absolute_error: 0.0122 73/126 [================>.............] - ETA: 0s - loss: 2.7359e-04 - mean_absolute_error: 0.0119100/126 [======================>.......] - ETA: 0s - loss: 2.7145e-04 - mean_absolute_error: 0.0119126/126 [==============================] - 0s 2ms/step - loss: 2.6410e-04 - mean_absolute_error: 0.0117 - val_loss: 1.4081e-04 - val_mean_absolute_error: 0.0095
Epoch 20/100
  1/126 [..............................] - ETA: 0s - loss: 3.9457e-04 - mean_absolute_error: 0.0145 19/126 [===>..........................] - ETA: 0s - loss: 2.4722e-04 - mean_absolute_error: 0.0113 40/126 [========>.....................] - ETA: 0s - loss: 2.5611e-04 - mean_absolute_error: 0.0115 66/126 [==============>...............] - ETA: 0s - loss: 2.6559e-04 - mean_absolute_error: 0.0116 90/126 [====================>.........] - ETA: 0s - loss: 2.5352e-04 - mean_absolute_error: 0.0115116/126 [==========================>...] - ETA: 0s - loss: 2.5507e-04 - mean_absolute_error: 0.0116126/126 [==============================] - 0s 3ms/step - loss: 2.5994e-04 - mean_absolute_error: 0.0117 - val_loss: 2.4981e-04 - val_mean_absolute_error: 0.0129
Epoch 21/100
  1/126 [..............................] - ETA: 0s - loss: 1.8072e-04 - mean_absolute_error: 0.0111 24/126 [====>.........................] - ETA: 0s - loss: 3.2148e-04 - mean_absolute_error: 0.0135 43/126 [=========>....................] - ETA: 0s - loss: 2.9396e-04 - mean_absolute_error: 0.0127 60/126 [=============>................] - ETA: 0s - loss: 2.9896e-04 - mean_absolute_error: 0.0126 79/126 [=================>............] - ETA: 0s - loss: 2.9402e-04 - mean_absolute_error: 0.0124 97/126 [======================>.......] - ETA: 0s - loss: 2.8643e-04 - mean_absolute_error: 0.0122117/126 [==========================>...] - ETA: 0s - loss: 2.7722e-04 - mean_absolute_error: 0.0121126/126 [==============================] - 0s 3ms/step - loss: 2.7322e-04 - mean_absolute_error: 0.0120 - val_loss: 1.4117e-04 - val_mean_absolute_error: 0.0092
Epoch 22/100
  1/126 [..............................] - ETA: 0s - loss: 3.1723e-04 - mean_absolute_error: 0.0136 25/126 [====>.........................] - ETA: 0s - loss: 2.8954e-04 - mean_absolute_error: 0.0122 48/126 [==========>...................] - ETA: 0s - loss: 2.9471e-04 - mean_absolute_error: 0.0125 72/126 [================>.............] - ETA: 0s - loss: 2.8313e-04 - mean_absolute_error: 0.0123 96/126 [=====================>........] - ETA: 0s - loss: 2.6753e-04 - mean_absolute_error: 0.0120120/126 [===========================>..] - ETA: 0s - loss: 2.7816e-04 - mean_absolute_error: 0.0120126/126 [==============================] - 0s 2ms/step - loss: 2.7788e-04 - mean_absolute_error: 0.0120 - val_loss: 1.2982e-04 - val_mean_absolute_error: 0.0089
Epoch 23/100
  1/126 [..............................] - ETA: 0s - loss: 1.3493e-04 - mean_absolute_error: 0.0091 22/126 [====>.........................] - ETA: 0s - loss: 2.5158e-04 - mean_absolute_error: 0.0114 44/126 [=========>....................] - ETA: 0s - loss: 2.6064e-04 - mean_absolute_error: 0.0117 68/126 [===============>..............] - ETA: 0s - loss: 2.6653e-04 - mean_absolute_error: 0.0118 91/126 [====================>.........] - ETA: 0s - loss: 2.8176e-04 - mean_absolute_error: 0.0123117/126 [==========================>...] - ETA: 0s - loss: 2.8460e-04 - mean_absolute_error: 0.0123126/126 [==============================] - 0s 3ms/step - loss: 2.8013e-04 - mean_absolute_error: 0.0122 - val_loss: 1.3502e-04 - val_mean_absolute_error: 0.0093
Epoch 24/100
  1/126 [..............................] - ETA: 0s - loss: 2.0560e-04 - mean_absolute_error: 0.0119 25/126 [====>.........................] - ETA: 0s - loss: 2.2955e-04 - mean_absolute_error: 0.0110 50/126 [==========>...................] - ETA: 0s - loss: 2.7000e-04 - mean_absolute_error: 0.0120 73/126 [================>.............] - ETA: 0s - loss: 2.7580e-04 - mean_absolute_error: 0.0121 99/126 [======================>.......] - ETA: 0s - loss: 2.7376e-04 - mean_absolute_error: 0.0120125/126 [============================>.] - ETA: 0s - loss: 2.7450e-04 - mean_absolute_error: 0.0120126/126 [==============================] - 0s 2ms/step - loss: 2.7486e-04 - mean_absolute_error: 0.0120 - val_loss: 1.5379e-04 - val_mean_absolute_error: 0.0101
Epoch 25/100
  1/126 [..............................] - ETA: 0s - loss: 3.6339e-04 - mean_absolute_error: 0.0159 25/126 [====>.........................] - ETA: 0s - loss: 2.6443e-04 - mean_absolute_error: 0.0119 50/126 [==========>...................] - ETA: 0s - loss: 2.5612e-04 - mean_absolute_error: 0.0121 76/126 [=================>............] - ETA: 0s - loss: 2.5444e-04 - mean_absolute_error: 0.0121100/126 [======================>.......] - ETA: 0s - loss: 2.6649e-04 - mean_absolute_error: 0.0121126/126 [==============================] - 0s 2ms/step - loss: 2.9203e-04 - mean_absolute_error: 0.0126 - val_loss: 1.7672e-04 - val_mean_absolute_error: 0.0109
Epoch 26/100
  1/126 [..............................] - ETA: 0s - loss: 2.5561e-04 - mean_absolute_error: 0.0126 21/126 [====>.........................] - ETA: 0s - loss: 2.5099e-04 - mean_absolute_error: 0.0119 46/126 [=========>....................] - ETA: 0s - loss: 2.4716e-04 - mean_absolute_error: 0.0115 68/126 [===============>..............] - ETA: 0s - loss: 2.5241e-04 - mean_absolute_error: 0.0116 94/126 [=====================>........] - ETA: 0s - loss: 2.5741e-04 - mean_absolute_error: 0.0116121/126 [===========================>..] - ETA: 0s - loss: 2.5987e-04 - mean_absolute_error: 0.0116126/126 [==============================] - 0s 2ms/step - loss: 2.6321e-04 - mean_absolute_error: 0.0116 - val_loss: 2.6086e-04 - val_mean_absolute_error: 0.0135
Epoch 27/100
  1/126 [..............................] - ETA: 0s - loss: 2.5291e-04 - mean_absolute_error: 0.0126 23/126 [====>.........................] - ETA: 0s - loss: 3.0315e-04 - mean_absolute_error: 0.0125 50/126 [==========>...................] - ETA: 0s - loss: 2.7499e-04 - mean_absolute_error: 0.0121 76/126 [=================>............] - ETA: 0s - loss: 2.8910e-04 - mean_absolute_error: 0.0122 97/126 [======================>.......] - ETA: 0s - loss: 2.8085e-04 - mean_absolute_error: 0.0121114/126 [==========================>...] - ETA: 0s - loss: 2.8553e-04 - mean_absolute_error: 0.0122126/126 [==============================] - 0s 3ms/step - loss: 2.7920e-04 - mean_absolute_error: 0.0121 - val_loss: 1.8376e-04 - val_mean_absolute_error: 0.0111
Epoch 28/100
  1/126 [..............................] - ETA: 0s - loss: 2.5188e-04 - mean_absolute_error: 0.0136 26/126 [=====>........................] - ETA: 0s - loss: 2.3664e-04 - mean_absolute_error: 0.0112 53/126 [===========>..................] - ETA: 0s - loss: 2.2697e-04 - mean_absolute_error: 0.0113 79/126 [=================>............] - ETA: 0s - loss: 2.4994e-04 - mean_absolute_error: 0.0115104/126 [=======================>......] - ETA: 0s - loss: 2.5231e-04 - mean_absolute_error: 0.0115126/126 [==============================] - 0s 2ms/step - loss: 2.5721e-04 - mean_absolute_error: 0.0116 - val_loss: 1.4128e-04 - val_mean_absolute_error: 0.0095
Epoch 29/100
  1/126 [..............................] - ETA: 0s - loss: 3.3065e-04 - mean_absolute_error: 0.0151 23/126 [====>.........................] - ETA: 0s - loss: 3.0041e-04 - mean_absolute_error: 0.0124 47/126 [==========>...................] - ETA: 0s - loss: 3.0038e-04 - mean_absolute_error: 0.0124 72/126 [================>.............] - ETA: 0s - loss: 2.8983e-04 - mean_absolute_error: 0.0121 93/126 [=====================>........] - ETA: 0s - loss: 2.7808e-04 - mean_absolute_error: 0.0120112/126 [=========================>....] - ETA: 0s - loss: 2.7347e-04 - mean_absolute_error: 0.0119126/126 [==============================] - 0s 3ms/step - loss: 2.7019e-04 - mean_absolute_error: 0.0118 - val_loss: 1.4121e-04 - val_mean_absolute_error: 0.0095
Epoch 30/100
  1/126 [..............................] - ETA: 0s - loss: 1.8536e-04 - mean_absolute_error: 0.0111 23/126 [====>.........................] - ETA: 0s - loss: 4.1735e-04 - mean_absolute_error: 0.0147 49/126 [==========>...................] - ETA: 0s - loss: 3.3726e-04 - mean_absolute_error: 0.0134 76/126 [=================>............] - ETA: 0s - loss: 3.1053e-04 - mean_absolute_error: 0.0128102/126 [=======================>......] - ETA: 0s - loss: 2.9233e-04 - mean_absolute_error: 0.0124125/126 [============================>.] - ETA: 0s - loss: 2.8482e-04 - mean_absolute_error: 0.0123126/126 [==============================] - 0s 2ms/step - loss: 2.8436e-04 - mean_absolute_error: 0.0123 - val_loss: 2.3520e-04 - val_mean_absolute_error: 0.0127
Epoch 31/100
  1/126 [..............................] - ETA: 0s - loss: 2.3643e-04 - mean_absolute_error: 0.0114 25/126 [====>.........................] - ETA: 0s - loss: 2.7953e-04 - mean_absolute_error: 0.0125 50/126 [==========>...................] - ETA: 0s - loss: 2.7116e-04 - mean_absolute_error: 0.0121 74/126 [================>.............] - ETA: 0s - loss: 2.7469e-04 - mean_absolute_error: 0.0125 99/126 [======================>.......] - ETA: 0s - loss: 2.7364e-04 - mean_absolute_error: 0.0124118/126 [===========================>..] - ETA: 0s - loss: 2.8577e-04 - mean_absolute_error: 0.0124126/126 [==============================] - 0s 3ms/step - loss: 2.8200e-04 - mean_absolute_error: 0.0123 - val_loss: 1.4846e-04 - val_mean_absolute_error: 0.0099
Epoch 32/100
  1/126 [..............................] - ETA: 0s - loss: 2.8848e-04 - mean_absolute_error: 0.0120 24/126 [====>.........................] - ETA: 0s - loss: 2.4870e-04 - mean_absolute_error: 0.0120 49/126 [==========>...................] - ETA: 0s - loss: 2.4804e-04 - mean_absolute_error: 0.0117 76/126 [=================>............] - ETA: 0s - loss: 2.7443e-04 - mean_absolute_error: 0.0125102/126 [=======================>......] - ETA: 0s - loss: 2.8713e-04 - mean_absolute_error: 0.0126122/126 [============================>.] - ETA: 0s - loss: 2.9701e-04 - mean_absolute_error: 0.0127126/126 [==============================] - 0s 2ms/step - loss: 2.9700e-04 - mean_absolute_error: 0.0127 - val_loss: 1.2898e-04 - val_mean_absolute_error: 0.0091
Epoch 33/100
  1/126 [..............................] - ETA: 0s - loss: 2.2526e-04 - mean_absolute_error: 0.0119 24/126 [====>.........................] - ETA: 0s - loss: 3.1743e-04 - mean_absolute_error: 0.0122 50/126 [==========>...................] - ETA: 0s - loss: 2.7563e-04 - mean_absolute_error: 0.0119 75/126 [================>.............] - ETA: 0s - loss: 2.8524e-04 - mean_absolute_error: 0.0122101/126 [=======================>......] - ETA: 0s - loss: 2.8085e-04 - mean_absolute_error: 0.0121126/126 [==============================] - 0s 2ms/step - loss: 2.7269e-04 - mean_absolute_error: 0.0120 - val_loss: 2.1459e-04 - val_mean_absolute_error: 0.0121
Epoch 34/100
  1/126 [..............................] - ETA: 0s - loss: 2.8675e-04 - mean_absolute_error: 0.0133 23/126 [====>.........................] - ETA: 0s - loss: 3.2002e-04 - mean_absolute_error: 0.0139 47/126 [==========>...................] - ETA: 0s - loss: 3.1320e-04 - mean_absolute_error: 0.0129 73/126 [================>.............] - ETA: 0s - loss: 2.9944e-04 - mean_absolute_error: 0.0128 99/126 [======================>.......] - ETA: 0s - loss: 3.1620e-04 - mean_absolute_error: 0.0131124/126 [============================>.] - ETA: 0s - loss: 3.0752e-04 - mean_absolute_error: 0.0130126/126 [==============================] - 0s 2ms/step - loss: 3.0784e-04 - mean_absolute_error: 0.0130 - val_loss: 1.3464e-04 - val_mean_absolute_error: 0.0093
Epoch 35/100
  1/126 [..............................] - ETA: 0s - loss: 1.8632e-04 - mean_absolute_error: 0.0101 22/126 [====>.........................] - ETA: 0s - loss: 2.9359e-04 - mean_absolute_error: 0.0116 46/126 [=========>....................] - ETA: 0s - loss: 2.6055e-04 - mean_absolute_error: 0.0115 71/126 [===============>..............] - ETA: 0s - loss: 2.5744e-04 - mean_absolute_error: 0.0115 97/126 [======================>.......] - ETA: 0s - loss: 2.6072e-04 - mean_absolute_error: 0.0116122/126 [============================>.] - ETA: 0s - loss: 2.6019e-04 - mean_absolute_error: 0.0116126/126 [==============================] - 0s 2ms/step - loss: 2.5940e-04 - mean_absolute_error: 0.0116 - val_loss: 1.2174e-04 - val_mean_absolute_error: 0.0086
Epoch 36/100
  1/126 [..............................] - ETA: 0s - loss: 1.1436e-04 - mean_absolute_error: 0.0087 22/126 [====>.........................] - ETA: 0s - loss: 2.9434e-04 - mean_absolute_error: 0.0124 48/126 [==========>...................] - ETA: 0s - loss: 2.9534e-04 - mean_absolute_error: 0.0127 75/126 [================>.............] - ETA: 0s - loss: 2.8569e-04 - mean_absolute_error: 0.0125101/126 [=======================>......] - ETA: 0s - loss: 2.7496e-04 - mean_absolute_error: 0.0123125/126 [============================>.] - ETA: 0s - loss: 2.6815e-04 - mean_absolute_error: 0.0120126/126 [==============================] - 0s 2ms/step - loss: 2.6783e-04 - mean_absolute_error: 0.0120 - val_loss: 1.6445e-04 - val_mean_absolute_error: 0.0100
Epoch 37/100
  1/126 [..............................] - ETA: 0s - loss: 1.9117e-04 - mean_absolute_error: 0.0108 22/126 [====>.........................] - ETA: 0s - loss: 2.7307e-04 - mean_absolute_error: 0.0123 45/126 [=========>....................] - ETA: 0s - loss: 3.1747e-04 - mean_absolute_error: 0.0130 72/126 [================>.............] - ETA: 0s - loss: 2.9553e-04 - mean_absolute_error: 0.0124 97/126 [======================>.......] - ETA: 0s - loss: 2.8020e-04 - mean_absolute_error: 0.0122123/126 [============================>.] - ETA: 0s - loss: 2.7728e-04 - mean_absolute_error: 0.0122126/126 [==============================] - 0s 2ms/step - loss: 2.7813e-04 - mean_absolute_error: 0.0122 - val_loss: 1.2328e-04 - val_mean_absolute_error: 0.0087
Epoch 38/100
  1/126 [..............................] - ETA: 0s - loss: 1.9995e-04 - mean_absolute_error: 0.0103 25/126 [====>.........................] - ETA: 0s - loss: 2.8074e-04 - mean_absolute_error: 0.0122 51/126 [===========>..................] - ETA: 0s - loss: 2.6045e-04 - mean_absolute_error: 0.0118 76/126 [=================>............] - ETA: 0s - loss: 2.5306e-04 - mean_absolute_error: 0.0115103/126 [=======================>......] - ETA: 0s - loss: 2.5425e-04 - mean_absolute_error: 0.0117126/126 [==============================] - 0s 2ms/step - loss: 2.7449e-04 - mean_absolute_error: 0.0121 - val_loss: 1.2143e-04 - val_mean_absolute_error: 0.0086
Epoch 39/100
  1/126 [..............................] - ETA: 0s - loss: 2.0617e-04 - mean_absolute_error: 0.0106 19/126 [===>..........................] - ETA: 0s - loss: 2.6215e-04 - mean_absolute_error: 0.0123 39/126 [========>.....................] - ETA: 0s - loss: 2.3988e-04 - mean_absolute_error: 0.0116 65/126 [==============>...............] - ETA: 0s - loss: 2.4412e-04 - mean_absolute_error: 0.0117 91/126 [====================>.........] - ETA: 0s - loss: 2.7116e-04 - mean_absolute_error: 0.0123118/126 [===========================>..] - ETA: 0s - loss: 2.7446e-04 - mean_absolute_error: 0.0123126/126 [==============================] - 0s 3ms/step - loss: 2.8407e-04 - mean_absolute_error: 0.0123 - val_loss: 1.3683e-04 - val_mean_absolute_error: 0.0091
Epoch 40/100
  1/126 [..............................] - ETA: 0s - loss: 2.5152e-04 - mean_absolute_error: 0.0118 24/126 [====>.........................] - ETA: 0s - loss: 2.5759e-04 - mean_absolute_error: 0.0121 50/126 [==========>...................] - ETA: 0s - loss: 2.8604e-04 - mean_absolute_error: 0.0122 72/126 [================>.............] - ETA: 0s - loss: 2.7515e-04 - mean_absolute_error: 0.0119 95/126 [=====================>........] - ETA: 0s - loss: 2.6767e-04 - mean_absolute_error: 0.0117120/126 [===========================>..] - ETA: 0s - loss: 2.6334e-04 - mean_absolute_error: 0.0117126/126 [==============================] - 0s 2ms/step - loss: 2.6240e-04 - mean_absolute_error: 0.0117 - val_loss: 1.2110e-04 - val_mean_absolute_error: 0.0087
Epoch 41/100
  1/126 [..............................] - ETA: 0s - loss: 1.3729e-04 - mean_absolute_error: 0.0086 24/126 [====>.........................] - ETA: 0s - loss: 2.0958e-04 - mean_absolute_error: 0.0110 49/126 [==========>...................] - ETA: 0s - loss: 2.5830e-04 - mean_absolute_error: 0.0118 75/126 [================>.............] - ETA: 0s - loss: 2.6473e-04 - mean_absolute_error: 0.0118100/126 [======================>.......] - ETA: 0s - loss: 2.7028e-04 - mean_absolute_error: 0.0117124/126 [============================>.] - ETA: 0s - loss: 2.5976e-04 - mean_absolute_error: 0.0116126/126 [==============================] - 0s 2ms/step - loss: 2.6004e-04 - mean_absolute_error: 0.0116 - val_loss: 1.1966e-04 - val_mean_absolute_error: 0.0085
Epoch 42/100
  1/126 [..............................] - ETA: 0s - loss: 2.2401e-04 - mean_absolute_error: 0.0122 23/126 [====>.........................] - ETA: 0s - loss: 3.0188e-04 - mean_absolute_error: 0.0129 47/126 [==========>...................] - ETA: 0s - loss: 2.6956e-04 - mean_absolute_error: 0.0119 70/126 [===============>..............] - ETA: 0s - loss: 2.7416e-04 - mean_absolute_error: 0.0120 96/126 [=====================>........] - ETA: 0s - loss: 2.7059e-04 - mean_absolute_error: 0.0120121/126 [===========================>..] - ETA: 0s - loss: 2.6952e-04 - mean_absolute_error: 0.0119126/126 [==============================] - 0s 2ms/step - loss: 2.6823e-04 - mean_absolute_error: 0.0119 - val_loss: 1.3488e-04 - val_mean_absolute_error: 0.0090
Epoch 43/100
  1/126 [..............................] - ETA: 0s - loss: 1.7016e-04 - mean_absolute_error: 0.0094 26/126 [=====>........................] - ETA: 0s - loss: 2.8572e-04 - mean_absolute_error: 0.0121 52/126 [===========>..................] - ETA: 0s - loss: 2.9969e-04 - mean_absolute_error: 0.0123 76/126 [=================>............] - ETA: 0s - loss: 2.9070e-04 - mean_absolute_error: 0.0123 99/126 [======================>.......] - ETA: 0s - loss: 3.0513e-04 - mean_absolute_error: 0.0129124/126 [============================>.] - ETA: 0s - loss: 3.4106e-04 - mean_absolute_error: 0.0138126/126 [==============================] - 0s 2ms/step - loss: 3.3966e-04 - mean_absolute_error: 0.0137 - val_loss: 3.2687e-04 - val_mean_absolute_error: 0.0153
Epoch 44/100
  1/126 [..............................] - ETA: 0s - loss: 5.2401e-04 - mean_absolute_error: 0.0181 26/126 [=====>........................] - ETA: 0s - loss: 2.9395e-04 - mean_absolute_error: 0.0126 51/126 [===========>..................] - ETA: 0s - loss: 2.7491e-04 - mean_absolute_error: 0.0121 76/126 [=================>............] - ETA: 0s - loss: 2.8254e-04 - mean_absolute_error: 0.0120101/126 [=======================>......] - ETA: 0s - loss: 2.6645e-04 - mean_absolute_error: 0.0118125/126 [============================>.] - ETA: 0s - loss: 2.6192e-04 - mean_absolute_error: 0.0117126/126 [==============================] - 0s 2ms/step - loss: 2.6175e-04 - mean_absolute_error: 0.0117 - val_loss: 2.6537e-04 - val_mean_absolute_error: 0.0137
Epoch 45/100
  1/126 [..............................] - ETA: 0s - loss: 4.0939e-04 - mean_absolute_error: 0.0168 25/126 [====>.........................] - ETA: 0s - loss: 3.8507e-04 - mean_absolute_error: 0.0147 49/126 [==========>...................] - ETA: 0s - loss: 3.4815e-04 - mean_absolute_error: 0.0137 74/126 [================>.............] - ETA: 0s - loss: 3.0711e-04 - mean_absolute_error: 0.0129 97/126 [======================>.......] - ETA: 0s - loss: 2.9408e-04 - mean_absolute_error: 0.0126122/126 [============================>.] - ETA: 0s - loss: 3.1239e-04 - mean_absolute_error: 0.0129126/126 [==============================] - 0s 2ms/step - loss: 3.1132e-04 - mean_absolute_error: 0.0129 - val_loss: 4.1802e-04 - val_mean_absolute_error: 0.0180
Epoch 46/100
  1/126 [..............................] - ETA: 0s - loss: 6.5078e-04 - mean_absolute_error: 0.0223 21/126 [====>.........................] - ETA: 0s - loss: 3.1492e-04 - mean_absolute_error: 0.0131 45/126 [=========>....................] - ETA: 0s - loss: 2.7487e-04 - mean_absolute_error: 0.0123 69/126 [===============>..............] - ETA: 0s - loss: 3.0334e-04 - mean_absolute_error: 0.0127 93/126 [=====================>........] - ETA: 0s - loss: 3.0078e-04 - mean_absolute_error: 0.0128117/126 [==========================>...] - ETA: 0s - loss: 2.9372e-04 - mean_absolute_error: 0.0126126/126 [==============================] - 0s 3ms/step - loss: 2.9313e-04 - mean_absolute_error: 0.0126 - val_loss: 2.4016e-04 - val_mean_absolute_error: 0.0127
Epoch 47/100
  1/126 [..............................] - ETA: 0s - loss: 3.8631e-04 - mean_absolute_error: 0.0161 22/126 [====>.........................] - ETA: 0s - loss: 2.3763e-04 - mean_absolute_error: 0.0114 47/126 [==========>...................] - ETA: 0s - loss: 2.9191e-04 - mean_absolute_error: 0.0126 72/126 [================>.............] - ETA: 0s - loss: 3.6391e-04 - mean_absolute_error: 0.0143 96/126 [=====================>........] - ETA: 0s - loss: 3.5455e-04 - mean_absolute_error: 0.0140121/126 [===========================>..] - ETA: 0s - loss: 3.2424e-04 - mean_absolute_error: 0.0133126/126 [==============================] - 0s 2ms/step - loss: 3.2308e-04 - mean_absolute_error: 0.0132 - val_loss: 1.6398e-04 - val_mean_absolute_error: 0.0101
Epoch 48/100
  1/126 [..............................] - ETA: 0s - loss: 8.0947e-04 - mean_absolute_error: 0.0150 25/126 [====>.........................] - ETA: 0s - loss: 2.9596e-04 - mean_absolute_error: 0.0118 51/126 [===========>..................] - ETA: 0s - loss: 3.0824e-04 - mean_absolute_error: 0.0127 75/126 [================>.............] - ETA: 0s - loss: 2.9928e-04 - mean_absolute_error: 0.0127100/126 [======================>.......] - ETA: 0s - loss: 2.8418e-04 - mean_absolute_error: 0.0123122/126 [============================>.] - ETA: 0s - loss: 2.7569e-04 - mean_absolute_error: 0.0122126/126 [==============================] - 0s 2ms/step - loss: 2.7446e-04 - mean_absolute_error: 0.0121 - val_loss: 3.0683e-04 - val_mean_absolute_error: 0.0147
Epoch 49/100
  1/126 [..............................] - ETA: 0s - loss: 4.7590e-04 - mean_absolute_error: 0.0161 26/126 [=====>........................] - ETA: 0s - loss: 2.5967e-04 - mean_absolute_error: 0.0115 50/126 [==========>...................] - ETA: 0s - loss: 2.6412e-04 - mean_absolute_error: 0.0116 74/126 [================>.............] - ETA: 0s - loss: 2.6959e-04 - mean_absolute_error: 0.0120 98/126 [======================>.......] - ETA: 0s - loss: 2.5644e-04 - mean_absolute_error: 0.0117122/126 [============================>.] - ETA: 0s - loss: 2.6295e-04 - mean_absolute_error: 0.0119126/126 [==============================] - 0s 2ms/step - loss: 2.6478e-04 - mean_absolute_error: 0.0119 - val_loss: 2.6990e-04 - val_mean_absolute_error: 0.0139
Epoch 50/100
  1/126 [..............................] - ETA: 0s - loss: 3.4413e-04 - mean_absolute_error: 0.0159 22/126 [====>.........................] - ETA: 0s - loss: 2.3136e-04 - mean_absolute_error: 0.0110 46/126 [=========>....................] - ETA: 0s - loss: 2.2332e-04 - mean_absolute_error: 0.0107 70/126 [===============>..............] - ETA: 0s - loss: 2.2930e-04 - mean_absolute_error: 0.0110 94/126 [=====================>........] - ETA: 0s - loss: 2.5708e-04 - mean_absolute_error: 0.0115118/126 [===========================>..] - ETA: 0s - loss: 2.5223e-04 - mean_absolute_error: 0.0114126/126 [==============================] - 0s 3ms/step - loss: 2.5036e-04 - mean_absolute_error: 0.0114 - val_loss: 1.2341e-04 - val_mean_absolute_error: 0.0089
Epoch 51/100
  1/126 [..............................] - ETA: 0s - loss: 2.1597e-04 - mean_absolute_error: 0.0120 25/126 [====>.........................] - ETA: 0s - loss: 2.1728e-04 - mean_absolute_error: 0.0107 50/126 [==========>...................] - ETA: 0s - loss: 2.4839e-04 - mean_absolute_error: 0.0114 74/126 [================>.............] - ETA: 0s - loss: 2.3245e-04 - mean_absolute_error: 0.0111 98/126 [======================>.......] - ETA: 0s - loss: 2.5616e-04 - mean_absolute_error: 0.0115121/126 [===========================>..] - ETA: 0s - loss: 2.5880e-04 - mean_absolute_error: 0.0117126/126 [==============================] - 0s 2ms/step - loss: 2.5710e-04 - mean_absolute_error: 0.0116 - val_loss: 1.4243e-04 - val_mean_absolute_error: 0.0097
Epoch 52/100
  1/126 [..............................] - ETA: 0s - loss: 1.5871e-04 - mean_absolute_error: 0.0095 25/126 [====>.........................] - ETA: 0s - loss: 2.9589e-04 - mean_absolute_error: 0.0121 49/126 [==========>...................] - ETA: 0s - loss: 2.8669e-04 - mean_absolute_error: 0.0125 73/126 [================>.............] - ETA: 0s - loss: 2.8368e-04 - mean_absolute_error: 0.0124 98/126 [======================>.......] - ETA: 0s - loss: 2.7075e-04 - mean_absolute_error: 0.0121122/126 [============================>.] - ETA: 0s - loss: 2.7533e-04 - mean_absolute_error: 0.0122126/126 [==============================] - 0s 2ms/step - loss: 2.7576e-04 - mean_absolute_error: 0.0122 - val_loss: 1.2103e-04 - val_mean_absolute_error: 0.0088
Epoch 53/100
  1/126 [..............................] - ETA: 0s - loss: 2.4045e-04 - mean_absolute_error: 0.0118 26/126 [=====>........................] - ETA: 0s - loss: 2.5300e-04 - mean_absolute_error: 0.0124 49/126 [==========>...................] - ETA: 0s - loss: 2.6065e-04 - mean_absolute_error: 0.0121 71/126 [===============>..............] - ETA: 0s - loss: 2.4549e-04 - mean_absolute_error: 0.0117 96/126 [=====================>........] - ETA: 0s - loss: 2.4333e-04 - mean_absolute_error: 0.0115121/126 [===========================>..] - ETA: 0s - loss: 2.5801e-04 - mean_absolute_error: 0.0117126/126 [==============================] - 0s 2ms/step - loss: 2.5682e-04 - mean_absolute_error: 0.0117 - val_loss: 1.5355e-04 - val_mean_absolute_error: 0.0101
Epoch 54/100
  1/126 [..............................] - ETA: 0s - loss: 1.1435e-04 - mean_absolute_error: 0.0084 26/126 [=====>........................] - ETA: 0s - loss: 2.5778e-04 - mean_absolute_error: 0.0115 51/126 [===========>..................] - ETA: 0s - loss: 2.6682e-04 - mean_absolute_error: 0.0118 75/126 [================>.............] - ETA: 0s - loss: 2.7453e-04 - mean_absolute_error: 0.0121 99/126 [======================>.......] - ETA: 0s - loss: 2.7608e-04 - mean_absolute_error: 0.0122124/126 [============================>.] - ETA: 0s - loss: 2.7391e-04 - mean_absolute_error: 0.0121126/126 [==============================] - 0s 2ms/step - loss: 2.7359e-04 - mean_absolute_error: 0.0121 - val_loss: 1.4745e-04 - val_mean_absolute_error: 0.0095
Epoch 55/100
  1/126 [..............................] - ETA: 0s - loss: 1.7662e-04 - mean_absolute_error: 0.0098 24/126 [====>.........................] - ETA: 0s - loss: 2.9083e-04 - mean_absolute_error: 0.0124 47/126 [==========>...................] - ETA: 0s - loss: 2.8291e-04 - mean_absolute_error: 0.0121 71/126 [===============>..............] - ETA: 0s - loss: 2.7431e-04 - mean_absolute_error: 0.0120 95/126 [=====================>........] - ETA: 0s - loss: 2.5449e-04 - mean_absolute_error: 0.0116120/126 [===========================>..] - ETA: 0s - loss: 2.5347e-04 - mean_absolute_error: 0.0116126/126 [==============================] - 0s 2ms/step - loss: 2.5486e-04 - mean_absolute_error: 0.0116 - val_loss: 1.5359e-04 - val_mean_absolute_error: 0.0101
Epoch 56/100
  1/126 [..............................] - ETA: 0s - loss: 2.5950e-04 - mean_absolute_error: 0.0123 26/126 [=====>........................] - ETA: 0s - loss: 2.3459e-04 - mean_absolute_error: 0.0108 51/126 [===========>..................] - ETA: 0s - loss: 2.2946e-04 - mean_absolute_error: 0.0110 73/126 [================>.............] - ETA: 0s - loss: 2.3248e-04 - mean_absolute_error: 0.0110 95/126 [=====================>........] - ETA: 0s - loss: 2.3385e-04 - mean_absolute_error: 0.0110117/126 [==========================>...] - ETA: 0s - loss: 2.4344e-04 - mean_absolute_error: 0.0113126/126 [==============================] - 0s 3ms/step - loss: 2.4662e-04 - mean_absolute_error: 0.0114 - val_loss: 1.1995e-04 - val_mean_absolute_error: 0.0085
Epoch 57/100
  1/126 [..............................] - ETA: 0s - loss: 2.7194e-04 - mean_absolute_error: 0.0131 25/126 [====>.........................] - ETA: 0s - loss: 2.5724e-04 - mean_absolute_error: 0.0118 50/126 [==========>...................] - ETA: 0s - loss: 2.3575e-04 - mean_absolute_error: 0.0113 75/126 [================>.............] - ETA: 0s - loss: 2.8291e-04 - mean_absolute_error: 0.0123100/126 [======================>.......] - ETA: 0s - loss: 2.7247e-04 - mean_absolute_error: 0.0122124/126 [============================>.] - ETA: 0s - loss: 2.7117e-04 - mean_absolute_error: 0.0120126/126 [==============================] - 0s 2ms/step - loss: 2.7091e-04 - mean_absolute_error: 0.0120 - val_loss: 1.1796e-04 - val_mean_absolute_error: 0.0086
Epoch 58/100
  1/126 [..............................] - ETA: 0s - loss: 2.5914e-04 - mean_absolute_error: 0.0117 25/126 [====>.........................] - ETA: 0s - loss: 2.4308e-04 - mean_absolute_error: 0.0116 49/126 [==========>...................] - ETA: 0s - loss: 2.8308e-04 - mean_absolute_error: 0.0120 71/126 [===============>..............] - ETA: 0s - loss: 2.5370e-04 - mean_absolute_error: 0.0115 96/126 [=====================>........] - ETA: 0s - loss: 2.7334e-04 - mean_absolute_error: 0.0121120/126 [===========================>..] - ETA: 0s - loss: 2.8328e-04 - mean_absolute_error: 0.0123126/126 [==============================] - 0s 2ms/step - loss: 2.8056e-04 - mean_absolute_error: 0.0122 - val_loss: 1.1993e-04 - val_mean_absolute_error: 0.0084
Epoch 59/100
  1/126 [..............................] - ETA: 0s - loss: 1.3082e-04 - mean_absolute_error: 0.0086 25/126 [====>.........................] - ETA: 0s - loss: 2.3765e-04 - mean_absolute_error: 0.0116 50/126 [==========>...................] - ETA: 0s - loss: 2.9128e-04 - mean_absolute_error: 0.0125 74/126 [================>.............] - ETA: 0s - loss: 3.0149e-04 - mean_absolute_error: 0.0129 96/126 [=====================>........] - ETA: 0s - loss: 2.9342e-04 - mean_absolute_error: 0.0127119/126 [===========================>..] - ETA: 0s - loss: 2.8961e-04 - mean_absolute_error: 0.0126126/126 [==============================] - 0s 2ms/step - loss: 2.8558e-04 - mean_absolute_error: 0.0125 - val_loss: 2.1005e-04 - val_mean_absolute_error: 0.0120
Epoch 60/100
  1/126 [..............................] - ETA: 0s - loss: 2.4973e-04 - mean_absolute_error: 0.0126 25/126 [====>.........................] - ETA: 0s - loss: 4.0302e-04 - mean_absolute_error: 0.0137 50/126 [==========>...................] - ETA: 0s - loss: 3.2778e-04 - mean_absolute_error: 0.0128 75/126 [================>.............] - ETA: 0s - loss: 2.9530e-04 - mean_absolute_error: 0.0121100/126 [======================>.......] - ETA: 0s - loss: 2.8121e-04 - mean_absolute_error: 0.0121125/126 [============================>.] - ETA: 0s - loss: 2.6986e-04 - mean_absolute_error: 0.0118126/126 [==============================] - 0s 2ms/step - loss: 2.6998e-04 - mean_absolute_error: 0.0118 - val_loss: 1.2988e-04 - val_mean_absolute_error: 0.0092
Epoch 61/100
  1/126 [..............................] - ETA: 0s - loss: 3.3046e-04 - mean_absolute_error: 0.0123 26/126 [=====>........................] - ETA: 0s - loss: 2.3787e-04 - mean_absolute_error: 0.0115 51/126 [===========>..................] - ETA: 0s - loss: 2.6845e-04 - mean_absolute_error: 0.0120 76/126 [=================>............] - ETA: 0s - loss: 2.8012e-04 - mean_absolute_error: 0.0122 98/126 [======================>.......] - ETA: 0s - loss: 2.7076e-04 - mean_absolute_error: 0.0120122/126 [============================>.] - ETA: 0s - loss: 2.5871e-04 - mean_absolute_error: 0.0117126/126 [==============================] - 0s 2ms/step - loss: 2.6128e-04 - mean_absolute_error: 0.0117 - val_loss: 2.3832e-04 - val_mean_absolute_error: 0.0129
Epoch 62/100
  1/126 [..............................] - ETA: 0s - loss: 3.0188e-04 - mean_absolute_error: 0.0152 25/126 [====>.........................] - ETA: 0s - loss: 2.0982e-04 - mean_absolute_error: 0.0106 50/126 [==========>...................] - ETA: 0s - loss: 2.2801e-04 - mean_absolute_error: 0.0110 75/126 [================>.............] - ETA: 0s - loss: 2.2431e-04 - mean_absolute_error: 0.0110 97/126 [======================>.......] - ETA: 0s - loss: 2.3444e-04 - mean_absolute_error: 0.0112120/126 [===========================>..] - ETA: 0s - loss: 2.4136e-04 - mean_absolute_error: 0.0113126/126 [==============================] - 0s 3ms/step - loss: 2.4400e-04 - mean_absolute_error: 0.0114 - val_loss: 1.6082e-04 - val_mean_absolute_error: 0.0103
Epoch 63/100
  1/126 [..............................] - ETA: 0s - loss: 2.2997e-04 - mean_absolute_error: 0.0121 25/126 [====>.........................] - ETA: 0s - loss: 3.0447e-04 - mean_absolute_error: 0.0132 49/126 [==========>...................] - ETA: 0s - loss: 3.0728e-04 - mean_absolute_error: 0.0129 74/126 [================>.............] - ETA: 0s - loss: 3.0975e-04 - mean_absolute_error: 0.0131 99/126 [======================>.......] - ETA: 0s - loss: 2.9594e-04 - mean_absolute_error: 0.0128123/126 [============================>.] - ETA: 0s - loss: 2.7863e-04 - mean_absolute_error: 0.0124126/126 [==============================] - 0s 2ms/step - loss: 2.8141e-04 - mean_absolute_error: 0.0124 - val_loss: 3.3444e-04 - val_mean_absolute_error: 0.0157
Epoch 64/100
  1/126 [..............................] - ETA: 0s - loss: 8.3962e-04 - mean_absolute_error: 0.0193 26/126 [=====>........................] - ETA: 0s - loss: 2.7055e-04 - mean_absolute_error: 0.0121 51/126 [===========>..................] - ETA: 0s - loss: 2.7943e-04 - mean_absolute_error: 0.0124 75/126 [================>.............] - ETA: 0s - loss: 2.9185e-04 - mean_absolute_error: 0.0125100/126 [======================>.......] - ETA: 0s - loss: 2.8814e-04 - mean_absolute_error: 0.0123122/126 [============================>.] - ETA: 0s - loss: 2.7024e-04 - mean_absolute_error: 0.0119126/126 [==============================] - 0s 2ms/step - loss: 2.6880e-04 - mean_absolute_error: 0.0119 - val_loss: 1.9547e-04 - val_mean_absolute_error: 0.0115
Epoch 65/100
  1/126 [..............................] - ETA: 0s - loss: 7.7960e-04 - mean_absolute_error: 0.0173 25/126 [====>.........................] - ETA: 0s - loss: 2.7540e-04 - mean_absolute_error: 0.0125 50/126 [==========>...................] - ETA: 0s - loss: 2.9211e-04 - mean_absolute_error: 0.0127 75/126 [================>.............] - ETA: 0s - loss: 2.9278e-04 - mean_absolute_error: 0.0129100/126 [======================>.......] - ETA: 0s - loss: 2.9199e-04 - mean_absolute_error: 0.0129125/126 [============================>.] - ETA: 0s - loss: 2.8919e-04 - mean_absolute_error: 0.0128126/126 [==============================] - 0s 2ms/step - loss: 2.8900e-04 - mean_absolute_error: 0.0128 - val_loss: 1.4137e-04 - val_mean_absolute_error: 0.0096
Epoch 66/100
  1/126 [..............................] - ETA: 0s - loss: 2.2007e-04 - mean_absolute_error: 0.0105 23/126 [====>.........................] - ETA: 0s - loss: 3.2017e-04 - mean_absolute_error: 0.0129 47/126 [==========>...................] - ETA: 0s - loss: 3.1110e-04 - mean_absolute_error: 0.0128 72/126 [================>.............] - ETA: 0s - loss: 2.7561e-04 - mean_absolute_error: 0.0120 97/126 [======================>.......] - ETA: 0s - loss: 2.7781e-04 - mean_absolute_error: 0.0122121/126 [===========================>..] - ETA: 0s - loss: 2.7181e-04 - mean_absolute_error: 0.0120126/126 [==============================] - 0s 2ms/step - loss: 2.7091e-04 - mean_absolute_error: 0.0120 - val_loss: 1.1004e-04 - val_mean_absolute_error: 0.0082
Epoch 67/100
  1/126 [..............................] - ETA: 0s - loss: 1.1739e-04 - mean_absolute_error: 0.0082 26/126 [=====>........................] - ETA: 0s - loss: 2.4184e-04 - mean_absolute_error: 0.0115 51/126 [===========>..................] - ETA: 0s - loss: 2.4661e-04 - mean_absolute_error: 0.0118 75/126 [================>.............] - ETA: 0s - loss: 2.4746e-04 - mean_absolute_error: 0.0116100/126 [======================>.......] - ETA: 0s - loss: 2.4853e-04 - mean_absolute_error: 0.0116125/126 [============================>.] - ETA: 0s - loss: 2.4406e-04 - mean_absolute_error: 0.0114126/126 [==============================] - 0s 2ms/step - loss: 2.4375e-04 - mean_absolute_error: 0.0114 - val_loss: 1.0964e-04 - val_mean_absolute_error: 0.0082
Epoch 68/100
  1/126 [..............................] - ETA: 0s - loss: 1.0328e-04 - mean_absolute_error: 0.0086 24/126 [====>.........................] - ETA: 0s - loss: 2.4499e-04 - mean_absolute_error: 0.0111 49/126 [==========>...................] - ETA: 0s - loss: 2.4236e-04 - mean_absolute_error: 0.0110 72/126 [================>.............] - ETA: 0s - loss: 2.2593e-04 - mean_absolute_error: 0.0107 97/126 [======================>.......] - ETA: 0s - loss: 2.2544e-04 - mean_absolute_error: 0.0107121/126 [===========================>..] - ETA: 0s - loss: 2.2898e-04 - mean_absolute_error: 0.0109126/126 [==============================] - 0s 2ms/step - loss: 2.2816e-04 - mean_absolute_error: 0.0109 - val_loss: 1.7447e-04 - val_mean_absolute_error: 0.0108
Epoch 69/100
  1/126 [..............................] - ETA: 0s - loss: 3.7630e-04 - mean_absolute_error: 0.0149 26/126 [=====>........................] - ETA: 0s - loss: 2.4428e-04 - mean_absolute_error: 0.0109 49/126 [==========>...................] - ETA: 0s - loss: 2.4836e-04 - mean_absolute_error: 0.0111 74/126 [================>.............] - ETA: 0s - loss: 2.5359e-04 - mean_absolute_error: 0.0113 96/126 [=====================>........] - ETA: 0s - loss: 2.4781e-04 - mean_absolute_error: 0.0113112/126 [=========================>....] - ETA: 0s - loss: 2.3895e-04 - mean_absolute_error: 0.0111126/126 [==============================] - 0s 3ms/step - loss: 2.4472e-04 - mean_absolute_error: 0.0112 - val_loss: 1.1259e-04 - val_mean_absolute_error: 0.0082
Epoch 70/100
  1/126 [..............................] - ETA: 0s - loss: 4.0621e-04 - mean_absolute_error: 0.0148 24/126 [====>.........................] - ETA: 0s - loss: 2.1053e-04 - mean_absolute_error: 0.0110 49/126 [==========>...................] - ETA: 0s - loss: 2.1934e-04 - mean_absolute_error: 0.0110 73/126 [================>.............] - ETA: 0s - loss: 2.3027e-04 - mean_absolute_error: 0.0112 97/126 [======================>.......] - ETA: 0s - loss: 2.3527e-04 - mean_absolute_error: 0.0112122/126 [============================>.] - ETA: 0s - loss: 2.3868e-04 - mean_absolute_error: 0.0112126/126 [==============================] - 0s 2ms/step - loss: 2.3649e-04 - mean_absolute_error: 0.0112 - val_loss: 1.4844e-04 - val_mean_absolute_error: 0.0096
Epoch 71/100
  1/126 [..............................] - ETA: 0s - loss: 1.6651e-04 - mean_absolute_error: 0.0098 23/126 [====>.........................] - ETA: 0s - loss: 2.4808e-04 - mean_absolute_error: 0.0121 47/126 [==========>...................] - ETA: 0s - loss: 2.8960e-04 - mean_absolute_error: 0.0130 72/126 [================>.............] - ETA: 0s - loss: 2.9164e-04 - mean_absolute_error: 0.0128 96/126 [=====================>........] - ETA: 0s - loss: 3.0347e-04 - mean_absolute_error: 0.0131120/126 [===========================>..] - ETA: 0s - loss: 2.9532e-04 - mean_absolute_error: 0.0130126/126 [==============================] - 0s 2ms/step - loss: 2.9404e-04 - mean_absolute_error: 0.0129 - val_loss: 1.0739e-04 - val_mean_absolute_error: 0.0081
Epoch 72/100
  1/126 [..............................] - ETA: 0s - loss: 1.6707e-04 - mean_absolute_error: 0.0100 25/126 [====>.........................] - ETA: 0s - loss: 2.2103e-04 - mean_absolute_error: 0.0112 50/126 [==========>...................] - ETA: 0s - loss: 2.4291e-04 - mean_absolute_error: 0.0110 72/126 [================>.............] - ETA: 0s - loss: 2.4459e-04 - mean_absolute_error: 0.0112 95/126 [=====================>........] - ETA: 0s - loss: 2.5118e-04 - mean_absolute_error: 0.0116120/126 [===========================>..] - ETA: 0s - loss: 2.3951e-04 - mean_absolute_error: 0.0113126/126 [==============================] - 0s 2ms/step - loss: 2.4163e-04 - mean_absolute_error: 0.0113 - val_loss: 1.4151e-04 - val_mean_absolute_error: 0.0096
Epoch 73/100
  1/126 [..............................] - ETA: 0s - loss: 1.8290e-04 - mean_absolute_error: 0.0106 26/126 [=====>........................] - ETA: 0s - loss: 2.5037e-04 - mean_absolute_error: 0.0114 51/126 [===========>..................] - ETA: 0s - loss: 2.4371e-04 - mean_absolute_error: 0.0114 76/126 [=================>............] - ETA: 0s - loss: 2.7904e-04 - mean_absolute_error: 0.0124100/126 [======================>.......] - ETA: 0s - loss: 2.7540e-04 - mean_absolute_error: 0.0121124/126 [============================>.] - ETA: 0s - loss: 2.5595e-04 - mean_absolute_error: 0.0117126/126 [==============================] - 0s 2ms/step - loss: 2.5608e-04 - mean_absolute_error: 0.0117 - val_loss: 1.1362e-04 - val_mean_absolute_error: 0.0085
Epoch 74/100
  1/126 [..............................] - ETA: 0s - loss: 2.1293e-04 - mean_absolute_error: 0.0097 25/126 [====>.........................] - ETA: 0s - loss: 2.1421e-04 - mean_absolute_error: 0.0106 49/126 [==========>...................] - ETA: 0s - loss: 2.1221e-04 - mean_absolute_error: 0.0106 72/126 [================>.............] - ETA: 0s - loss: 2.2485e-04 - mean_absolute_error: 0.0110 96/126 [=====================>........] - ETA: 0s - loss: 2.2567e-04 - mean_absolute_error: 0.0110119/126 [===========================>..] - ETA: 0s - loss: 2.4729e-04 - mean_absolute_error: 0.0115126/126 [==============================] - 0s 3ms/step - loss: 2.5133e-04 - mean_absolute_error: 0.0116 - val_loss: 1.1103e-04 - val_mean_absolute_error: 0.0084
Epoch 75/100
  1/126 [..............................] - ETA: 0s - loss: 2.3498e-04 - mean_absolute_error: 0.0109 25/126 [====>.........................] - ETA: 0s - loss: 2.2164e-04 - mean_absolute_error: 0.0107 49/126 [==========>...................] - ETA: 0s - loss: 2.0523e-04 - mean_absolute_error: 0.0105 73/126 [================>.............] - ETA: 0s - loss: 2.1720e-04 - mean_absolute_error: 0.0108 95/126 [=====================>........] - ETA: 0s - loss: 2.3216e-04 - mean_absolute_error: 0.0112119/126 [===========================>..] - ETA: 0s - loss: 2.4159e-04 - mean_absolute_error: 0.0113126/126 [==============================] - 0s 2ms/step - loss: 2.3684e-04 - mean_absolute_error: 0.0112 - val_loss: 1.2870e-04 - val_mean_absolute_error: 0.0091
Epoch 76/100
  1/126 [..............................] - ETA: 0s - loss: 1.9168e-04 - mean_absolute_error: 0.0113 26/126 [=====>........................] - ETA: 0s - loss: 2.2337e-04 - mean_absolute_error: 0.0111 50/126 [==========>...................] - ETA: 0s - loss: 2.1163e-04 - mean_absolute_error: 0.0108 74/126 [================>.............] - ETA: 0s - loss: 2.3773e-04 - mean_absolute_error: 0.0114 98/126 [======================>.......] - ETA: 0s - loss: 2.4873e-04 - mean_absolute_error: 0.0115122/126 [============================>.] - ETA: 0s - loss: 2.4514e-04 - mean_absolute_error: 0.0114126/126 [==============================] - 0s 2ms/step - loss: 2.4453e-04 - mean_absolute_error: 0.0114 - val_loss: 1.7285e-04 - val_mean_absolute_error: 0.0105
Epoch 77/100
  1/126 [..............................] - ETA: 0s - loss: 2.7138e-04 - mean_absolute_error: 0.0116 25/126 [====>.........................] - ETA: 0s - loss: 2.3245e-04 - mean_absolute_error: 0.0109 50/126 [==========>...................] - ETA: 0s - loss: 2.2190e-04 - mean_absolute_error: 0.0111 75/126 [================>.............] - ETA: 0s - loss: 2.3996e-04 - mean_absolute_error: 0.0112 98/126 [======================>.......] - ETA: 0s - loss: 2.3381e-04 - mean_absolute_error: 0.0111122/126 [============================>.] - ETA: 0s - loss: 2.3874e-04 - mean_absolute_error: 0.0112126/126 [==============================] - 0s 2ms/step - loss: 2.3739e-04 - mean_absolute_error: 0.0112 - val_loss: 1.6155e-04 - val_mean_absolute_error: 0.0101
Epoch 78/100
  1/126 [..............................] - ETA: 0s - loss: 6.6355e-04 - mean_absolute_error: 0.0143 26/126 [=====>........................] - ETA: 0s - loss: 2.6161e-04 - mean_absolute_error: 0.0122 50/126 [==========>...................] - ETA: 0s - loss: 2.3575e-04 - mean_absolute_error: 0.0112 74/126 [================>.............] - ETA: 0s - loss: 2.3370e-04 - mean_absolute_error: 0.0110 99/126 [======================>.......] - ETA: 0s - loss: 2.3673e-04 - mean_absolute_error: 0.0111121/126 [===========================>..] - ETA: 0s - loss: 2.5310e-04 - mean_absolute_error: 0.0116126/126 [==============================] - 0s 2ms/step - loss: 2.5332e-04 - mean_absolute_error: 0.0116 - val_loss: 1.8378e-04 - val_mean_absolute_error: 0.0112
Epoch 79/100
  1/126 [..............................] - ETA: 0s - loss: 1.8143e-04 - mean_absolute_error: 0.0106 25/126 [====>.........................] - ETA: 0s - loss: 2.8166e-04 - mean_absolute_error: 0.0122 50/126 [==========>...................] - ETA: 0s - loss: 2.4576e-04 - mean_absolute_error: 0.0115 74/126 [================>.............] - ETA: 0s - loss: 2.6849e-04 - mean_absolute_error: 0.0121 98/126 [======================>.......] - ETA: 0s - loss: 2.6148e-04 - mean_absolute_error: 0.0119121/126 [===========================>..] - ETA: 0s - loss: 2.5011e-04 - mean_absolute_error: 0.0116126/126 [==============================] - 0s 2ms/step - loss: 2.4943e-04 - mean_absolute_error: 0.0115 - val_loss: 1.5067e-04 - val_mean_absolute_error: 0.0097
Epoch 80/100
  1/126 [..............................] - ETA: 0s - loss: 2.1007e-04 - mean_absolute_error: 0.0119 25/126 [====>.........................] - ETA: 0s - loss: 2.0210e-04 - mean_absolute_error: 0.0108 51/126 [===========>..................] - ETA: 0s - loss: 2.1138e-04 - mean_absolute_error: 0.0106 75/126 [================>.............] - ETA: 0s - loss: 2.2094e-04 - mean_absolute_error: 0.0107 99/126 [======================>.......] - ETA: 0s - loss: 2.2612e-04 - mean_absolute_error: 0.0108121/126 [===========================>..] - ETA: 0s - loss: 2.1997e-04 - mean_absolute_error: 0.0106126/126 [==============================] - 0s 2ms/step - loss: 2.1923e-04 - mean_absolute_error: 0.0106 - val_loss: 1.7465e-04 - val_mean_absolute_error: 0.0106
Epoch 81/100
  1/126 [..............................] - ETA: 0s - loss: 2.0912e-04 - mean_absolute_error: 0.0116 25/126 [====>.........................] - ETA: 0s - loss: 3.2684e-04 - mean_absolute_error: 0.0136 49/126 [==========>...................] - ETA: 0s - loss: 2.8860e-04 - mean_absolute_error: 0.0129 73/126 [================>.............] - ETA: 0s - loss: 2.6297e-04 - mean_absolute_error: 0.0123 97/126 [======================>.......] - ETA: 0s - loss: 2.4314e-04 - mean_absolute_error: 0.0117121/126 [===========================>..] - ETA: 0s - loss: 2.5143e-04 - mean_absolute_error: 0.0117126/126 [==============================] - 0s 2ms/step - loss: 2.5246e-04 - mean_absolute_error: 0.0118 - val_loss: 1.0255e-04 - val_mean_absolute_error: 0.0079
Epoch 82/100
  1/126 [..............................] - ETA: 0s - loss: 1.1492e-04 - mean_absolute_error: 0.0074 25/126 [====>.........................] - ETA: 0s - loss: 2.7897e-04 - mean_absolute_error: 0.0122 49/126 [==========>...................] - ETA: 0s - loss: 2.4378e-04 - mean_absolute_error: 0.0116 74/126 [================>.............] - ETA: 0s - loss: 2.2877e-04 - mean_absolute_error: 0.0111 98/126 [======================>.......] - ETA: 0s - loss: 2.3142e-04 - mean_absolute_error: 0.0110123/126 [============================>.] - ETA: 0s - loss: 2.3133e-04 - mean_absolute_error: 0.0111126/126 [==============================] - 0s 2ms/step - loss: 2.3252e-04 - mean_absolute_error: 0.0111 - val_loss: 2.0981e-04 - val_mean_absolute_error: 0.0121
Epoch 83/100
  1/126 [..............................] - ETA: 0s - loss: 2.5636e-04 - mean_absolute_error: 0.0136 26/126 [=====>........................] - ETA: 0s - loss: 2.7939e-04 - mean_absolute_error: 0.0127 51/126 [===========>..................] - ETA: 0s - loss: 2.7569e-04 - mean_absolute_error: 0.0125 76/126 [=================>............] - ETA: 0s - loss: 2.5806e-04 - mean_absolute_error: 0.0120101/126 [=======================>......] - ETA: 0s - loss: 2.5666e-04 - mean_absolute_error: 0.0118126/126 [==============================] - ETA: 0s - loss: 2.5171e-04 - mean_absolute_error: 0.0117126/126 [==============================] - 0s 2ms/step - loss: 2.5171e-04 - mean_absolute_error: 0.0117 - val_loss: 4.4660e-04 - val_mean_absolute_error: 0.0188
Epoch 84/100
  1/126 [..............................] - ETA: 0s - loss: 4.1462e-04 - mean_absolute_error: 0.0185 24/126 [====>.........................] - ETA: 0s - loss: 3.3156e-04 - mean_absolute_error: 0.0127 48/126 [==========>...................] - ETA: 0s - loss: 2.7832e-04 - mean_absolute_error: 0.0120 72/126 [================>.............] - ETA: 0s - loss: 2.5015e-04 - mean_absolute_error: 0.0115 96/126 [=====================>........] - ETA: 0s - loss: 2.4812e-04 - mean_absolute_error: 0.0114120/126 [===========================>..] - ETA: 0s - loss: 2.3734e-04 - mean_absolute_error: 0.0111126/126 [==============================] - 0s 2ms/step - loss: 2.3341e-04 - mean_absolute_error: 0.0111 - val_loss: 1.0409e-04 - val_mean_absolute_error: 0.0079
Epoch 85/100
  1/126 [..............................] - ETA: 0s - loss: 9.0391e-05 - mean_absolute_error: 0.0073 25/126 [====>.........................] - ETA: 0s - loss: 2.1458e-04 - mean_absolute_error: 0.0106 47/126 [==========>...................] - ETA: 0s - loss: 2.2768e-04 - mean_absolute_error: 0.0107 70/126 [===============>..............] - ETA: 0s - loss: 2.3579e-04 - mean_absolute_error: 0.0109 94/126 [=====================>........] - ETA: 0s - loss: 2.4095e-04 - mean_absolute_error: 0.0112118/126 [===========================>..] - ETA: 0s - loss: 2.2926e-04 - mean_absolute_error: 0.0110126/126 [==============================] - 0s 3ms/step - loss: 2.2595e-04 - mean_absolute_error: 0.0109 - val_loss: 1.1475e-04 - val_mean_absolute_error: 0.0083
Epoch 86/100
  1/126 [..............................] - ETA: 0s - loss: 1.3383e-04 - mean_absolute_error: 0.0084 26/126 [=====>........................] - ETA: 0s - loss: 2.0297e-04 - mean_absolute_error: 0.0100 51/126 [===========>..................] - ETA: 0s - loss: 1.9247e-04 - mean_absolute_error: 0.0098 76/126 [=================>............] - ETA: 0s - loss: 2.0985e-04 - mean_absolute_error: 0.0103100/126 [======================>.......] - ETA: 0s - loss: 2.0527e-04 - mean_absolute_error: 0.0102125/126 [============================>.] - ETA: 0s - loss: 2.1539e-04 - mean_absolute_error: 0.0106126/126 [==============================] - 0s 2ms/step - loss: 2.1537e-04 - mean_absolute_error: 0.0106 - val_loss: 1.0095e-04 - val_mean_absolute_error: 0.0079
Epoch 87/100
  1/126 [..............................] - ETA: 0s - loss: 1.3735e-04 - mean_absolute_error: 0.0091 24/126 [====>.........................] - ETA: 0s - loss: 2.0206e-04 - mean_absolute_error: 0.0105 48/126 [==========>...................] - ETA: 0s - loss: 2.1880e-04 - mean_absolute_error: 0.0108 73/126 [================>.............] - ETA: 0s - loss: 2.0065e-04 - mean_absolute_error: 0.0104 98/126 [======================>.......] - ETA: 0s - loss: 2.1260e-04 - mean_absolute_error: 0.0107122/126 [============================>.] - ETA: 0s - loss: 2.1793e-04 - mean_absolute_error: 0.0108126/126 [==============================] - 0s 2ms/step - loss: 2.2603e-04 - mean_absolute_error: 0.0109 - val_loss: 9.9247e-05 - val_mean_absolute_error: 0.0077
Epoch 88/100
  1/126 [..............................] - ETA: 0s - loss: 1.4916e-04 - mean_absolute_error: 0.0088 26/126 [=====>........................] - ETA: 0s - loss: 3.8379e-04 - mean_absolute_error: 0.0152 51/126 [===========>..................] - ETA: 0s - loss: 3.2506e-04 - mean_absolute_error: 0.0131 73/126 [================>.............] - ETA: 0s - loss: 2.8935e-04 - mean_absolute_error: 0.0123 97/126 [======================>.......] - ETA: 0s - loss: 2.6892e-04 - mean_absolute_error: 0.0119121/126 [===========================>..] - ETA: 0s - loss: 2.5168e-04 - mean_absolute_error: 0.0115126/126 [==============================] - 0s 2ms/step - loss: 2.4804e-04 - mean_absolute_error: 0.0114 - val_loss: 1.0036e-04 - val_mean_absolute_error: 0.0078
Epoch 89/100
  1/126 [..............................] - ETA: 0s - loss: 9.7792e-05 - mean_absolute_error: 0.0077 25/126 [====>.........................] - ETA: 0s - loss: 2.2201e-04 - mean_absolute_error: 0.0102 49/126 [==========>...................] - ETA: 0s - loss: 2.0698e-04 - mean_absolute_error: 0.0102 73/126 [================>.............] - ETA: 0s - loss: 1.9845e-04 - mean_absolute_error: 0.0102 97/126 [======================>.......] - ETA: 0s - loss: 2.0451e-04 - mean_absolute_error: 0.0102121/126 [===========================>..] - ETA: 0s - loss: 2.0671e-04 - mean_absolute_error: 0.0103126/126 [==============================] - 0s 2ms/step - loss: 2.0700e-04 - mean_absolute_error: 0.0103 - val_loss: 9.9132e-05 - val_mean_absolute_error: 0.0077
Epoch 90/100
  1/126 [..............................] - ETA: 0s - loss: 3.1854e-04 - mean_absolute_error: 0.0111 25/126 [====>.........................] - ETA: 0s - loss: 1.7194e-04 - mean_absolute_error: 0.0099 49/126 [==========>...................] - ETA: 0s - loss: 1.9857e-04 - mean_absolute_error: 0.0106 72/126 [================>.............] - ETA: 0s - loss: 2.1228e-04 - mean_absolute_error: 0.0105 97/126 [======================>.......] - ETA: 0s - loss: 2.2288e-04 - mean_absolute_error: 0.0109120/126 [===========================>..] - ETA: 0s - loss: 2.3353e-04 - mean_absolute_error: 0.0112126/126 [==============================] - 0s 3ms/step - loss: 2.3062e-04 - mean_absolute_error: 0.0111 - val_loss: 1.4851e-04 - val_mean_absolute_error: 0.0097
Epoch 91/100
  1/126 [..............................] - ETA: 0s - loss: 1.1868e-04 - mean_absolute_error: 0.0076 24/126 [====>.........................] - ETA: 0s - loss: 2.1210e-04 - mean_absolute_error: 0.0099 48/126 [==========>...................] - ETA: 0s - loss: 2.0347e-04 - mean_absolute_error: 0.0100 73/126 [================>.............] - ETA: 0s - loss: 2.1668e-04 - mean_absolute_error: 0.0105 95/126 [=====================>........] - ETA: 0s - loss: 2.2126e-04 - mean_absolute_error: 0.0107118/126 [===========================>..] - ETA: 0s - loss: 2.1804e-04 - mean_absolute_error: 0.0107126/126 [==============================] - 0s 3ms/step - loss: 2.1452e-04 - mean_absolute_error: 0.0106 - val_loss: 1.4237e-04 - val_mean_absolute_error: 0.0095
Epoch 92/100
  1/126 [..............................] - ETA: 0s - loss: 1.1319e-04 - mean_absolute_error: 0.0089 25/126 [====>.........................] - ETA: 0s - loss: 2.4627e-04 - mean_absolute_error: 0.0117 50/126 [==========>...................] - ETA: 0s - loss: 2.5020e-04 - mean_absolute_error: 0.0118 74/126 [================>.............] - ETA: 0s - loss: 2.6021e-04 - mean_absolute_error: 0.0118 98/126 [======================>.......] - ETA: 0s - loss: 2.6509e-04 - mean_absolute_error: 0.0121123/126 [============================>.] - ETA: 0s - loss: 2.6150e-04 - mean_absolute_error: 0.0121126/126 [==============================] - 0s 2ms/step - loss: 2.6160e-04 - mean_absolute_error: 0.0121 - val_loss: 9.6221e-05 - val_mean_absolute_error: 0.0076
Epoch 93/100
  1/126 [..............................] - ETA: 0s - loss: 1.1222e-04 - mean_absolute_error: 0.0087 26/126 [=====>........................] - ETA: 0s - loss: 2.3639e-04 - mean_absolute_error: 0.0110 50/126 [==========>...................] - ETA: 0s - loss: 2.2174e-04 - mean_absolute_error: 0.0109 74/126 [================>.............] - ETA: 0s - loss: 2.2458e-04 - mean_absolute_error: 0.0109 96/126 [=====================>........] - ETA: 0s - loss: 2.3070e-04 - mean_absolute_error: 0.0112121/126 [===========================>..] - ETA: 0s - loss: 2.3995e-04 - mean_absolute_error: 0.0114126/126 [==============================] - 0s 2ms/step - loss: 2.3784e-04 - mean_absolute_error: 0.0113 - val_loss: 1.1272e-04 - val_mean_absolute_error: 0.0085
Epoch 94/100
  1/126 [..............................] - ETA: 0s - loss: 1.5273e-04 - mean_absolute_error: 0.0098 25/126 [====>.........................] - ETA: 0s - loss: 2.3884e-04 - mean_absolute_error: 0.0115 50/126 [==========>...................] - ETA: 0s - loss: 2.4751e-04 - mean_absolute_error: 0.0115 75/126 [================>.............] - ETA: 0s - loss: 2.5008e-04 - mean_absolute_error: 0.0115 99/126 [======================>.......] - ETA: 0s - loss: 2.6177e-04 - mean_absolute_error: 0.0120120/126 [===========================>..] - ETA: 0s - loss: 2.4508e-04 - mean_absolute_error: 0.0116126/126 [==============================] - 0s 2ms/step - loss: 2.4135e-04 - mean_absolute_error: 0.0115 - val_loss: 1.4724e-04 - val_mean_absolute_error: 0.0099
Epoch 95/100
  1/126 [..............................] - ETA: 0s - loss: 1.6811e-04 - mean_absolute_error: 0.0104 25/126 [====>.........................] - ETA: 0s - loss: 2.3244e-04 - mean_absolute_error: 0.0114 50/126 [==========>...................] - ETA: 0s - loss: 2.3807e-04 - mean_absolute_error: 0.0111 75/126 [================>.............] - ETA: 0s - loss: 2.3257e-04 - mean_absolute_error: 0.0109100/126 [======================>.......] - ETA: 0s - loss: 2.1965e-04 - mean_absolute_error: 0.0106124/126 [============================>.] - ETA: 0s - loss: 2.1285e-04 - mean_absolute_error: 0.0105126/126 [==============================] - 0s 2ms/step - loss: 2.1151e-04 - mean_absolute_error: 0.0105 - val_loss: 1.0866e-04 - val_mean_absolute_error: 0.0083
Epoch 96/100
  1/126 [..............................] - ETA: 0s - loss: 2.3910e-04 - mean_absolute_error: 0.0116 26/126 [=====>........................] - ETA: 0s - loss: 2.7047e-04 - mean_absolute_error: 0.0116 51/126 [===========>..................] - ETA: 0s - loss: 2.2856e-04 - mean_absolute_error: 0.0108 76/126 [=================>............] - ETA: 0s - loss: 2.2756e-04 - mean_absolute_error: 0.0111101/126 [=======================>......] - ETA: 0s - loss: 2.1970e-04 - mean_absolute_error: 0.0109123/126 [============================>.] - ETA: 0s - loss: 2.3428e-04 - mean_absolute_error: 0.0112126/126 [==============================] - 0s 2ms/step - loss: 2.3554e-04 - mean_absolute_error: 0.0113 - val_loss: 1.9981e-04 - val_mean_absolute_error: 0.0118
Epoch 97/100
  1/126 [..............................] - ETA: 0s - loss: 2.5971e-04 - mean_absolute_error: 0.0122 25/126 [====>.........................] - ETA: 0s - loss: 1.9010e-04 - mean_absolute_error: 0.0101 49/126 [==========>...................] - ETA: 0s - loss: 1.8741e-04 - mean_absolute_error: 0.0097 74/126 [================>.............] - ETA: 0s - loss: 1.9432e-04 - mean_absolute_error: 0.0099 99/126 [======================>.......] - ETA: 0s - loss: 2.0705e-04 - mean_absolute_error: 0.0102124/126 [============================>.] - ETA: 0s - loss: 2.0022e-04 - mean_absolute_error: 0.0101126/126 [==============================] - 0s 2ms/step - loss: 1.9977e-04 - mean_absolute_error: 0.0101 - val_loss: 2.4338e-04 - val_mean_absolute_error: 0.0132
Epoch 98/100
  1/126 [..............................] - ETA: 0s - loss: 1.4210e-04 - mean_absolute_error: 0.0100 23/126 [====>.........................] - ETA: 0s - loss: 2.1255e-04 - mean_absolute_error: 0.0106 47/126 [==========>...................] - ETA: 0s - loss: 2.0551e-04 - mean_absolute_error: 0.0106 71/126 [===============>..............] - ETA: 0s - loss: 2.0424e-04 - mean_absolute_error: 0.0106 95/126 [=====================>........] - ETA: 0s - loss: 2.1718e-04 - mean_absolute_error: 0.0107120/126 [===========================>..] - ETA: 0s - loss: 2.1534e-04 - mean_absolute_error: 0.0106126/126 [==============================] - 0s 2ms/step - loss: 2.1360e-04 - mean_absolute_error: 0.0106 - val_loss: 1.4752e-04 - val_mean_absolute_error: 0.0097
Epoch 99/100
  1/126 [..............................] - ETA: 0s - loss: 3.1826e-04 - mean_absolute_error: 0.0128 25/126 [====>.........................] - ETA: 0s - loss: 2.4802e-04 - mean_absolute_error: 0.0116 50/126 [==========>...................] - ETA: 0s - loss: 2.1089e-04 - mean_absolute_error: 0.0105 75/126 [================>.............] - ETA: 0s - loss: 2.0816e-04 - mean_absolute_error: 0.0104 99/126 [======================>.......] - ETA: 0s - loss: 2.0802e-04 - mean_absolute_error: 0.0104123/126 [============================>.] - ETA: 0s - loss: 2.0251e-04 - mean_absolute_error: 0.0102126/126 [==============================] - 0s 2ms/step - loss: 2.0135e-04 - mean_absolute_error: 0.0102 - val_loss: 1.1595e-04 - val_mean_absolute_error: 0.0085
Epoch 100/100
  1/126 [..............................] - ETA: 0s - loss: 1.3914e-04 - mean_absolute_error: 0.0097 25/126 [====>.........................] - ETA: 0s - loss: 1.9945e-04 - mean_absolute_error: 0.0107 50/126 [==========>...................] - ETA: 0s - loss: 2.0095e-04 - mean_absolute_error: 0.0106 74/126 [================>.............] - ETA: 0s - loss: 2.5056e-04 - mean_absolute_error: 0.0119 98/126 [======================>.......] - ETA: 0s - loss: 2.6962e-04 - mean_absolute_error: 0.0125122/126 [============================>.] - ETA: 0s - loss: 2.6069e-04 - mean_absolute_error: 0.0121126/126 [==============================] - 0s 2ms/step - loss: 2.6102e-04 - mean_absolute_error: 0.0121 - val_loss: 9.2348e-05 - val_mean_absolute_error: 0.0074
<keras.src.callbacks.History at 0x21151fbec50>

After the training and fitting of the Machine Learning model for Austrailia, I tried to create visualizations comparing the model against the country’s training dataset, validation dataset, but most importantly the testing dataset (as shown below in the line graphs). Note that the darker and thicker blue lines represent the prediction model’s projections and the thinner red lines is the observed/gathered data.

```{python}
# Testing the Machine Learning Model prediction for Austrailia with the train, 
# validation, and test sets
# Most important is the test set prediction as this tests the effectiveness
# of the Machine Learning model on data it has not seen before 
austrailia_train_pred = austrailia_model.predict(X_austrailia_train).flatten()

plt.plot(dates_austrailia_train, austrailia_train_pred, linewidth=4)
plt.plot(dates_austrailia_train, y_austrailia_train, linewidth=1)
plt.legend(["Training Predictions", "Training Observations"])
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("Austrailia - Training Set Predictions vs. Observations")
plt.show()

austrailia_val_pred = austrailia_model.predict(X_austrailia_val).flatten()

plt.plot(dates_austrailia_val, austrailia_val_pred, linewidth=4)
plt.plot(dates_austrailia_val, y_austrailia_val, linewidth=1)
plt.legend(["Validation Predictions", "Validation Observations"])
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("Austrailia - Validation Set Predictions vs. Observations")
plt.show()

austrailia_test_pred = austrailia_model.predict(X_austrailia_test).flatten()

plt.plot(dates_austrailia_test, austrailia_test_pred, linewidth=4)
plt.plot(dates_austrailia_test, y_austrailia_test, linewidth=1)
plt.legend(["Testing Predictions", "Testing Observations"])
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("Austrailia - Testing Set Predictions vs. Observations")
plt.show()
```
  1/126 [..............................] - ETA: 45s 32/126 [======>.......................] - ETA: 0s  71/126 [===============>..............] - ETA: 0s116/126 [==========================>...] - ETA: 0s126/126 [==============================] - 1s 1ms/step
 1/16 [>.............................] - ETA: 0s16/16 [==============================] - 0s 1ms/step
 1/16 [>.............................] - ETA: 0s16/16 [==============================] - 0s 2ms/step

Through careful consideration of all of the prediction-based vs. observation-based contrast visualizations together, I consolidated all of graphics into one singular visualization for you to see below to get a more general perspective of the effectiveness of the Machine Learning model at training and fitting towards predicting Austrailia’s international currency rate with the United States.

```{python}
# Plotting Austrailia's observational (reference) data with the predictions of 
# its Machine Learning Model (as a way to visually inspect the effectiveness of 
# the model) 
plt.plot(dates_austrailia_train, austrailia_train_pred, linewidth=4)
plt.plot(dates_austrailia_train, y_austrailia_train, linewidth=1)
plt.plot(dates_austrailia_val, austrailia_val_pred, linewidth=4)
plt.plot(dates_austrailia_val, y_austrailia_val, linewidth=1)
plt.plot(dates_austrailia_test, austrailia_test_pred, linewidth=4)
plt.plot(dates_austrailia_test, y_austrailia_test, linewidth=1)

plt.legend(["Training Predictions",
            "Training Observations",
            "Validation Predictions",
            "Validation Observations",
            "Testing Predictions",
            "Testing Observations"])
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("Culmination of the Three Machine Learning Phases of Austrailia's Dataset - Predictions vs. Observations")
plt.show()
```

Once Austraila’s data was completely trained and visualized, I worked on Canada’s data (as shown below):

Since the data (date, X, and y) is split into three np.arrays and to be more efficient, I will manually split Canada’s data into train, test, and validation datasets for the Machine Learning model with 80% going to the training dataset, the next 10% going to the validation dataset, and the last 10% going to the test dataset for each np.array respectively.

```{python}
# Splitting Canada's data into train, test, and validation sets on 3 mediums: 
# the X-axis, the y-axis, and the indices (represented by dates)
dates_canada_train, X_canada_train, y_canada_train = dates_canada[:percentile_80], X_canada[:percentile_80], y_canada[:percentile_80]
dates_canada_val, X_canada_val, y_canada_val = dates_canada[percentile_80:percentile_90], X_canada[percentile_80:percentile_90], y_canada[percentile_80:percentile_90]
dates_canada_test, X_canada_test, y_canada_test = dates_canada[percentile_90:], X_canada[percentile_90:], y_canada[percentile_90:]

plt.plot(dates_canada_train, y_canada_train, linewidth=1)
plt.plot(dates_canada_val, y_canada_val, linewidth=1)
plt.plot(dates_canada_test, y_canada_test, linewidth=1)

plt.legend(["Training", "Validation", "Testing"])
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("Split of Canada's Data for LSTM Model")
plt.show()
```

Now, I began to configure the Machine Learning model. We added Sequential layers: an Input layer 3 by 1 because we will have 3 np.arrays of Input and 1 np.array as output, utilize a LSTM (Long Short-Term Memory) layer of 64 neurons, apply 2 levels of dense layers with 32 neurons and folliowing recommendations online to use the RELU (Rectified Linear Unit) Activiation Function, and I followed up with one last dense layer of 1 neuron as our output layer since we are just trying to linearly-predict the next currency-rate on a near-future date. Once I configured the Sequential layers, we are ready to compile the model, utilzing the mean_square_error as our minimizing loss function, using the Adam optimizer, and comparing our trained model against our data with the mean_absolute_error metric. Lastly, I fitted our model, utilzing our X_train and Y_train datasets for fitting with validation from our X_valid and Y_valid datasets at 100 epochs.

```{python}
# Configuring the Machine Learning Tensorflow Model for Canada
canada_model = Sequential([layers.Input((3, 1)),
                    layers.LSTM(64),
                    layers.Dense(32, activation="relu"),
                    layers.Dense(32, activation="relu"),
                    layers.Dense(1)])

canada_model.compile(loss="mse",
              optimizer=Adam(learning_rate=0.001),
              metrics=["mean_absolute_error"])

canada_model.fit(X_canada_train, y_canada_train, validation_data=(X_canada_val, y_canada_val), epochs=100)
```
Epoch 1/100
  1/126 [..............................] - ETA: 3:43 - loss: 1.8081 - mean_absolute_error: 1.3317 21/126 [====>.........................] - ETA: 0s - loss: 1.2760 - mean_absolute_error: 1.1071   46/126 [=========>....................] - ETA: 0s - loss: 0.7308 - mean_absolute_error: 0.7374 71/126 [===============>..............] - ETA: 0s - loss: 0.4798 - mean_absolute_error: 0.5154 96/126 [=====================>........] - ETA: 0s - loss: 0.3558 - mean_absolute_error: 0.3948122/126 [============================>.] - ETA: 0s - loss: 0.2806 - mean_absolute_error: 0.3206126/126 [==============================] - 3s 6ms/step - loss: 0.2731 - mean_absolute_error: 0.3132 - val_loss: 8.7997e-04 - val_mean_absolute_error: 0.0262
Epoch 2/100
  1/126 [..............................] - ETA: 0s - loss: 0.0021 - mean_absolute_error: 0.0377 23/126 [====>.........................] - ETA: 0s - loss: 0.0026 - mean_absolute_error: 0.0441 46/126 [=========>....................] - ETA: 0s - loss: 0.0024 - mean_absolute_error: 0.0423 69/126 [===============>..............] - ETA: 0s - loss: 0.0023 - mean_absolute_error: 0.0414 95/126 [=====================>........] - ETA: 0s - loss: 0.0022 - mean_absolute_error: 0.0406120/126 [===========================>..] - ETA: 0s - loss: 0.0020 - mean_absolute_error: 0.0391126/126 [==============================] - 0s 3ms/step - loss: 0.0020 - mean_absolute_error: 0.0388 - val_loss: 4.8611e-04 - val_mean_absolute_error: 0.0190
Epoch 3/100
  1/126 [..............................] - ETA: 0s - loss: 0.0017 - mean_absolute_error: 0.0368 23/126 [====>.........................] - ETA: 0s - loss: 0.0013 - mean_absolute_error: 0.0309 47/126 [==========>...................] - ETA: 0s - loss: 0.0011 - mean_absolute_error: 0.0292 71/126 [===============>..............] - ETA: 0s - loss: 0.0010 - mean_absolute_error: 0.0278 97/126 [======================>.......] - ETA: 0s - loss: 9.4170e-04 - mean_absolute_error: 0.0265119/126 [===========================>..] - ETA: 0s - loss: 8.6811e-04 - mean_absolute_error: 0.0253126/126 [==============================] - 0s 3ms/step - loss: 8.5053e-04 - mean_absolute_error: 0.0250 - val_loss: 1.9765e-04 - val_mean_absolute_error: 0.0114
Epoch 4/100
  1/126 [..............................] - ETA: 0s - loss: 4.3766e-04 - mean_absolute_error: 0.0190 19/126 [===>..........................] - ETA: 0s - loss: 4.5125e-04 - mean_absolute_error: 0.0183 42/126 [=========>....................] - ETA: 0s - loss: 4.0210e-04 - mean_absolute_error: 0.0172 67/126 [==============>...............] - ETA: 0s - loss: 3.6157e-04 - mean_absolute_error: 0.0161 93/126 [=====================>........] - ETA: 0s - loss: 3.2672e-04 - mean_absolute_error: 0.0152118/126 [===========================>..] - ETA: 0s - loss: 2.9982e-04 - mean_absolute_error: 0.0145126/126 [==============================] - 0s 3ms/step - loss: 2.9354e-04 - mean_absolute_error: 0.0143 - val_loss: 1.0823e-04 - val_mean_absolute_error: 0.0082
Epoch 5/100
  1/126 [..............................] - ETA: 0s - loss: 2.0204e-04 - mean_absolute_error: 0.0116 23/126 [====>.........................] - ETA: 0s - loss: 1.6405e-04 - mean_absolute_error: 0.0104 44/126 [=========>....................] - ETA: 0s - loss: 1.5035e-04 - mean_absolute_error: 0.0099 69/126 [===============>..............] - ETA: 0s - loss: 1.4750e-04 - mean_absolute_error: 0.0098 93/126 [=====================>........] - ETA: 0s - loss: 1.4056e-04 - mean_absolute_error: 0.0095118/126 [===========================>..] - ETA: 0s - loss: 1.3398e-04 - mean_absolute_error: 0.0092126/126 [==============================] - 0s 3ms/step - loss: 1.3127e-04 - mean_absolute_error: 0.0091 - val_loss: 1.0302e-04 - val_mean_absolute_error: 0.0078
Epoch 6/100
  1/126 [..............................] - ETA: 0s - loss: 1.2048e-04 - mean_absolute_error: 0.0091 25/126 [====>.........................] - ETA: 0s - loss: 1.0308e-04 - mean_absolute_error: 0.0079 48/126 [==========>...................] - ETA: 0s - loss: 1.0282e-04 - mean_absolute_error: 0.0078 72/126 [================>.............] - ETA: 0s - loss: 1.0397e-04 - mean_absolute_error: 0.0078 96/126 [=====================>........] - ETA: 0s - loss: 1.0075e-04 - mean_absolute_error: 0.0077119/126 [===========================>..] - ETA: 0s - loss: 1.0178e-04 - mean_absolute_error: 0.0077126/126 [==============================] - 0s 2ms/step - loss: 1.0202e-04 - mean_absolute_error: 0.0077 - val_loss: 1.3408e-04 - val_mean_absolute_error: 0.0093
Epoch 7/100
  1/126 [..............................] - ETA: 0s - loss: 6.9718e-05 - mean_absolute_error: 0.0062 25/126 [====>.........................] - ETA: 0s - loss: 9.1791e-05 - mean_absolute_error: 0.0074 47/126 [==========>...................] - ETA: 0s - loss: 9.1973e-05 - mean_absolute_error: 0.0075 73/126 [================>.............] - ETA: 0s - loss: 9.5117e-05 - mean_absolute_error: 0.0075 99/126 [======================>.......] - ETA: 0s - loss: 9.4269e-05 - mean_absolute_error: 0.0074123/126 [============================>.] - ETA: 0s - loss: 9.7022e-05 - mean_absolute_error: 0.0074126/126 [==============================] - 0s 2ms/step - loss: 9.6435e-05 - mean_absolute_error: 0.0074 - val_loss: 1.1465e-04 - val_mean_absolute_error: 0.0084
Epoch 8/100
  1/126 [..............................] - ETA: 0s - loss: 7.5300e-05 - mean_absolute_error: 0.0071 25/126 [====>.........................] - ETA: 0s - loss: 1.0454e-04 - mean_absolute_error: 0.0076 49/126 [==========>...................] - ETA: 0s - loss: 9.9674e-05 - mean_absolute_error: 0.0075 71/126 [===============>..............] - ETA: 0s - loss: 9.6526e-05 - mean_absolute_error: 0.0073 95/126 [=====================>........] - ETA: 0s - loss: 9.6469e-05 - mean_absolute_error: 0.0074118/126 [===========================>..] - ETA: 0s - loss: 9.5205e-05 - mean_absolute_error: 0.0074126/126 [==============================] - 0s 3ms/step - loss: 9.6687e-05 - mean_absolute_error: 0.0074 - val_loss: 1.0942e-04 - val_mean_absolute_error: 0.0082
Epoch 9/100
  1/126 [..............................] - ETA: 0s - loss: 7.8333e-05 - mean_absolute_error: 0.0074 24/126 [====>.........................] - ETA: 0s - loss: 1.0049e-04 - mean_absolute_error: 0.0074 50/126 [==========>...................] - ETA: 0s - loss: 1.0160e-04 - mean_absolute_error: 0.0075 76/126 [=================>............] - ETA: 0s - loss: 9.9806e-05 - mean_absolute_error: 0.0075103/126 [=======================>......] - ETA: 0s - loss: 9.9041e-05 - mean_absolute_error: 0.0076126/126 [==============================] - 0s 2ms/step - loss: 9.8934e-05 - mean_absolute_error: 0.0076 - val_loss: 1.0565e-04 - val_mean_absolute_error: 0.0080
Epoch 10/100
  1/126 [..............................] - ETA: 0s - loss: 1.9085e-04 - mean_absolute_error: 0.0093 22/126 [====>.........................] - ETA: 0s - loss: 9.1363e-05 - mean_absolute_error: 0.0073 48/126 [==========>...................] - ETA: 0s - loss: 9.3282e-05 - mean_absolute_error: 0.0073 71/126 [===============>..............] - ETA: 0s - loss: 9.7740e-05 - mean_absolute_error: 0.0074 97/126 [======================>.......] - ETA: 0s - loss: 9.9733e-05 - mean_absolute_error: 0.0075123/126 [============================>.] - ETA: 0s - loss: 9.7381e-05 - mean_absolute_error: 0.0075126/126 [==============================] - 0s 2ms/step - loss: 9.7310e-05 - mean_absolute_error: 0.0075 - val_loss: 1.0509e-04 - val_mean_absolute_error: 0.0080
Epoch 11/100
  1/126 [..............................] - ETA: 0s - loss: 1.2548e-04 - mean_absolute_error: 0.0088 23/126 [====>.........................] - ETA: 0s - loss: 9.4016e-05 - mean_absolute_error: 0.0074 48/126 [==========>...................] - ETA: 0s - loss: 1.0077e-04 - mean_absolute_error: 0.0076 72/126 [================>.............] - ETA: 0s - loss: 9.8575e-05 - mean_absolute_error: 0.0076 98/126 [======================>.......] - ETA: 0s - loss: 9.6929e-05 - mean_absolute_error: 0.0075119/126 [===========================>..] - ETA: 0s - loss: 9.8413e-05 - mean_absolute_error: 0.0075126/126 [==============================] - 0s 2ms/step - loss: 9.7405e-05 - mean_absolute_error: 0.0075 - val_loss: 1.1962e-04 - val_mean_absolute_error: 0.0087
Epoch 12/100
  1/126 [..............................] - ETA: 0s - loss: 6.5185e-05 - mean_absolute_error: 0.0058 24/126 [====>.........................] - ETA: 0s - loss: 8.7705e-05 - mean_absolute_error: 0.0073 50/126 [==========>...................] - ETA: 0s - loss: 9.2967e-05 - mean_absolute_error: 0.0073 75/126 [================>.............] - ETA: 0s - loss: 9.4607e-05 - mean_absolute_error: 0.0074101/126 [=======================>......] - ETA: 0s - loss: 9.3144e-05 - mean_absolute_error: 0.0073126/126 [==============================] - ETA: 0s - loss: 9.7184e-05 - mean_absolute_error: 0.0074126/126 [==============================] - 0s 2ms/step - loss: 9.7184e-05 - mean_absolute_error: 0.0074 - val_loss: 1.1719e-04 - val_mean_absolute_error: 0.0086
Epoch 13/100
  1/126 [..............................] - ETA: 0s - loss: 8.2881e-05 - mean_absolute_error: 0.0077 23/126 [====>.........................] - ETA: 0s - loss: 8.1968e-05 - mean_absolute_error: 0.0068 49/126 [==========>...................] - ETA: 0s - loss: 8.7964e-05 - mean_absolute_error: 0.0071 75/126 [================>.............] - ETA: 0s - loss: 9.5656e-05 - mean_absolute_error: 0.0074100/126 [======================>.......] - ETA: 0s - loss: 9.6549e-05 - mean_absolute_error: 0.0074124/126 [============================>.] - ETA: 0s - loss: 9.6742e-05 - mean_absolute_error: 0.0074126/126 [==============================] - 0s 2ms/step - loss: 9.6215e-05 - mean_absolute_error: 0.0074 - val_loss: 1.1084e-04 - val_mean_absolute_error: 0.0082
Epoch 14/100
  1/126 [..............................] - ETA: 0s - loss: 1.0416e-04 - mean_absolute_error: 0.0075 23/126 [====>.........................] - ETA: 0s - loss: 9.9358e-05 - mean_absolute_error: 0.0075 49/126 [==========>...................] - ETA: 0s - loss: 8.9865e-05 - mean_absolute_error: 0.0072 75/126 [================>.............] - ETA: 0s - loss: 9.5612e-05 - mean_absolute_error: 0.0075100/126 [======================>.......] - ETA: 0s - loss: 9.7161e-05 - mean_absolute_error: 0.0075125/126 [============================>.] - ETA: 0s - loss: 1.0252e-04 - mean_absolute_error: 0.0077126/126 [==============================] - 0s 2ms/step - loss: 1.0236e-04 - mean_absolute_error: 0.0077 - val_loss: 1.2355e-04 - val_mean_absolute_error: 0.0089
Epoch 15/100
  1/126 [..............................] - ETA: 0s - loss: 1.2479e-04 - mean_absolute_error: 0.0079 19/126 [===>..........................] - ETA: 0s - loss: 1.0076e-04 - mean_absolute_error: 0.0075 41/126 [========>.....................] - ETA: 0s - loss: 9.8988e-05 - mean_absolute_error: 0.0075 66/126 [==============>...............] - ETA: 0s - loss: 9.5836e-05 - mean_absolute_error: 0.0074 91/126 [====================>.........] - ETA: 0s - loss: 9.8012e-05 - mean_absolute_error: 0.0075117/126 [==========================>...] - ETA: 0s - loss: 9.9841e-05 - mean_absolute_error: 0.0075126/126 [==============================] - 0s 3ms/step - loss: 1.0012e-04 - mean_absolute_error: 0.0075 - val_loss: 1.3938e-04 - val_mean_absolute_error: 0.0095
Epoch 16/100
  1/126 [..............................] - ETA: 0s - loss: 1.3525e-04 - mean_absolute_error: 0.0094 19/126 [===>..........................] - ETA: 0s - loss: 9.9887e-05 - mean_absolute_error: 0.0077 43/126 [=========>....................] - ETA: 0s - loss: 1.0500e-04 - mean_absolute_error: 0.0076 69/126 [===============>..............] - ETA: 0s - loss: 1.0264e-04 - mean_absolute_error: 0.0076 94/126 [=====================>........] - ETA: 0s - loss: 1.0042e-04 - mean_absolute_error: 0.0076119/126 [===========================>..] - ETA: 0s - loss: 9.7248e-05 - mean_absolute_error: 0.0075126/126 [==============================] - 0s 3ms/step - loss: 9.8535e-05 - mean_absolute_error: 0.0075 - val_loss: 1.1864e-04 - val_mean_absolute_error: 0.0086
Epoch 17/100
  1/126 [..............................] - ETA: 0s - loss: 1.4481e-04 - mean_absolute_error: 0.0075 21/126 [====>.........................] - ETA: 0s - loss: 1.0580e-04 - mean_absolute_error: 0.0077 46/126 [=========>....................] - ETA: 0s - loss: 1.0785e-04 - mean_absolute_error: 0.0078 73/126 [================>.............] - ETA: 0s - loss: 1.0331e-04 - mean_absolute_error: 0.0077 98/126 [======================>.......] - ETA: 0s - loss: 1.0234e-04 - mean_absolute_error: 0.0076124/126 [============================>.] - ETA: 0s - loss: 1.0208e-04 - mean_absolute_error: 0.0077126/126 [==============================] - 0s 2ms/step - loss: 1.0333e-04 - mean_absolute_error: 0.0077 - val_loss: 1.0540e-04 - val_mean_absolute_error: 0.0080
Epoch 18/100
  1/126 [..............................] - ETA: 0s - loss: 1.3335e-04 - mean_absolute_error: 0.0097 23/126 [====>.........................] - ETA: 0s - loss: 1.0077e-04 - mean_absolute_error: 0.0076 46/126 [=========>....................] - ETA: 0s - loss: 1.1563e-04 - mean_absolute_error: 0.0081 64/126 [==============>...............] - ETA: 0s - loss: 1.1424e-04 - mean_absolute_error: 0.0081 80/126 [==================>...........] - ETA: 0s - loss: 1.1639e-04 - mean_absolute_error: 0.0082 98/126 [======================>.......] - ETA: 0s - loss: 1.1209e-04 - mean_absolute_error: 0.0081111/126 [=========================>....] - ETA: 0s - loss: 1.0953e-04 - mean_absolute_error: 0.0080125/126 [============================>.] - ETA: 0s - loss: 1.0814e-04 - mean_absolute_error: 0.0079126/126 [==============================] - 0s 3ms/step - loss: 1.0814e-04 - mean_absolute_error: 0.0079 - val_loss: 1.1619e-04 - val_mean_absolute_error: 0.0085
Epoch 19/100
  1/126 [..............................] - ETA: 0s - loss: 5.9198e-05 - mean_absolute_error: 0.0057 22/126 [====>.........................] - ETA: 0s - loss: 9.1179e-05 - mean_absolute_error: 0.0073 45/126 [=========>....................] - ETA: 0s - loss: 9.6205e-05 - mean_absolute_error: 0.0074 67/126 [==============>...............] - ETA: 0s - loss: 9.2354e-05 - mean_absolute_error: 0.0073 89/126 [====================>.........] - ETA: 0s - loss: 9.8806e-05 - mean_absolute_error: 0.0076112/126 [=========================>....] - ETA: 0s - loss: 9.8674e-05 - mean_absolute_error: 0.0076126/126 [==============================] - 0s 3ms/step - loss: 1.0037e-04 - mean_absolute_error: 0.0076 - val_loss: 1.0919e-04 - val_mean_absolute_error: 0.0081
Epoch 20/100
  1/126 [..............................] - ETA: 0s - loss: 9.7328e-05 - mean_absolute_error: 0.0075 25/126 [====>.........................] - ETA: 0s - loss: 1.2145e-04 - mean_absolute_error: 0.0084 49/126 [==========>...................] - ETA: 0s - loss: 1.0919e-04 - mean_absolute_error: 0.0079 73/126 [================>.............] - ETA: 0s - loss: 1.0795e-04 - mean_absolute_error: 0.0078 97/126 [======================>.......] - ETA: 0s - loss: 1.0569e-04 - mean_absolute_error: 0.0077120/126 [===========================>..] - ETA: 0s - loss: 1.0315e-04 - mean_absolute_error: 0.0077126/126 [==============================] - 0s 3ms/step - loss: 1.0256e-04 - mean_absolute_error: 0.0077 - val_loss: 1.0509e-04 - val_mean_absolute_error: 0.0080
Epoch 21/100
  1/126 [..............................] - ETA: 0s - loss: 9.6787e-05 - mean_absolute_error: 0.0076 24/126 [====>.........................] - ETA: 0s - loss: 9.6329e-05 - mean_absolute_error: 0.0074 48/126 [==========>...................] - ETA: 0s - loss: 9.8267e-05 - mean_absolute_error: 0.0075 73/126 [================>.............] - ETA: 0s - loss: 1.0100e-04 - mean_absolute_error: 0.0076 97/126 [======================>.......] - ETA: 0s - loss: 9.9835e-05 - mean_absolute_error: 0.0076121/126 [===========================>..] - ETA: 0s - loss: 9.9008e-05 - mean_absolute_error: 0.0075126/126 [==============================] - 0s 2ms/step - loss: 9.8602e-05 - mean_absolute_error: 0.0075 - val_loss: 1.1862e-04 - val_mean_absolute_error: 0.0087
Epoch 22/100
  1/126 [..............................] - ETA: 0s - loss: 8.1378e-05 - mean_absolute_error: 0.0067 25/126 [====>.........................] - ETA: 0s - loss: 8.2019e-05 - mean_absolute_error: 0.0069 50/126 [==========>...................] - ETA: 0s - loss: 9.9280e-05 - mean_absolute_error: 0.0075 74/126 [================>.............] - ETA: 0s - loss: 1.0129e-04 - mean_absolute_error: 0.0076 98/126 [======================>.......] - ETA: 0s - loss: 1.0062e-04 - mean_absolute_error: 0.0076120/126 [===========================>..] - ETA: 0s - loss: 1.0120e-04 - mean_absolute_error: 0.0076126/126 [==============================] - 0s 2ms/step - loss: 1.0075e-04 - mean_absolute_error: 0.0076 - val_loss: 1.3195e-04 - val_mean_absolute_error: 0.0092
Epoch 23/100
  1/126 [..............................] - ETA: 0s - loss: 9.3499e-05 - mean_absolute_error: 0.0077 25/126 [====>.........................] - ETA: 0s - loss: 9.7184e-05 - mean_absolute_error: 0.0075 50/126 [==========>...................] - ETA: 0s - loss: 9.6932e-05 - mean_absolute_error: 0.0076 75/126 [================>.............] - ETA: 0s - loss: 9.9127e-05 - mean_absolute_error: 0.0076 99/126 [======================>.......] - ETA: 0s - loss: 1.0405e-04 - mean_absolute_error: 0.0078123/126 [============================>.] - ETA: 0s - loss: 1.0190e-04 - mean_absolute_error: 0.0077126/126 [==============================] - 0s 2ms/step - loss: 1.0161e-04 - mean_absolute_error: 0.0076 - val_loss: 1.1087e-04 - val_mean_absolute_error: 0.0083
Epoch 24/100
  1/126 [..............................] - ETA: 0s - loss: 5.5480e-05 - mean_absolute_error: 0.0061 23/126 [====>.........................] - ETA: 0s - loss: 8.7872e-05 - mean_absolute_error: 0.0073 48/126 [==========>...................] - ETA: 0s - loss: 9.3414e-05 - mean_absolute_error: 0.0073 72/126 [================>.............] - ETA: 0s - loss: 9.5633e-05 - mean_absolute_error: 0.0074 96/126 [=====================>........] - ETA: 0s - loss: 9.7927e-05 - mean_absolute_error: 0.0075118/126 [===========================>..] - ETA: 0s - loss: 9.9678e-05 - mean_absolute_error: 0.0075126/126 [==============================] - 0s 3ms/step - loss: 1.0003e-04 - mean_absolute_error: 0.0075 - val_loss: 1.2565e-04 - val_mean_absolute_error: 0.0090
Epoch 25/100
  1/126 [..............................] - ETA: 0s - loss: 7.9450e-05 - mean_absolute_error: 0.0074 25/126 [====>.........................] - ETA: 0s - loss: 9.8912e-05 - mean_absolute_error: 0.0075 50/126 [==========>...................] - ETA: 0s - loss: 1.0336e-04 - mean_absolute_error: 0.0076 74/126 [================>.............] - ETA: 0s - loss: 9.8794e-05 - mean_absolute_error: 0.0075 99/126 [======================>.......] - ETA: 0s - loss: 9.7475e-05 - mean_absolute_error: 0.0075123/126 [============================>.] - ETA: 0s - loss: 9.9559e-05 - mean_absolute_error: 0.0075126/126 [==============================] - 0s 2ms/step - loss: 9.9412e-05 - mean_absolute_error: 0.0075 - val_loss: 1.2989e-04 - val_mean_absolute_error: 0.0091
Epoch 26/100
  1/126 [..............................] - ETA: 0s - loss: 7.4199e-05 - mean_absolute_error: 0.0071 26/126 [=====>........................] - ETA: 0s - loss: 9.2947e-05 - mean_absolute_error: 0.0076 51/126 [===========>..................] - ETA: 0s - loss: 9.5316e-05 - mean_absolute_error: 0.0074 75/126 [================>.............] - ETA: 0s - loss: 9.4714e-05 - mean_absolute_error: 0.0074100/126 [======================>.......] - ETA: 0s - loss: 9.4934e-05 - mean_absolute_error: 0.0074124/126 [============================>.] - ETA: 0s - loss: 9.7676e-05 - mean_absolute_error: 0.0075126/126 [==============================] - 0s 2ms/step - loss: 9.7950e-05 - mean_absolute_error: 0.0075 - val_loss: 1.6811e-04 - val_mean_absolute_error: 0.0106
Epoch 27/100
  1/126 [..............................] - ETA: 0s - loss: 2.6050e-04 - mean_absolute_error: 0.0105 25/126 [====>.........................] - ETA: 0s - loss: 1.1278e-04 - mean_absolute_error: 0.0083 46/126 [=========>....................] - ETA: 0s - loss: 1.0497e-04 - mean_absolute_error: 0.0079 69/126 [===============>..............] - ETA: 0s - loss: 1.0159e-04 - mean_absolute_error: 0.0077 94/126 [=====================>........] - ETA: 0s - loss: 1.0501e-04 - mean_absolute_error: 0.0078118/126 [===========================>..] - ETA: 0s - loss: 1.0481e-04 - mean_absolute_error: 0.0078126/126 [==============================] - 0s 3ms/step - loss: 1.0309e-04 - mean_absolute_error: 0.0077 - val_loss: 1.1406e-04 - val_mean_absolute_error: 0.0083
Epoch 28/100
  1/126 [..............................] - ETA: 0s - loss: 1.0045e-04 - mean_absolute_error: 0.0080 25/126 [====>.........................] - ETA: 0s - loss: 1.1964e-04 - mean_absolute_error: 0.0085 49/126 [==========>...................] - ETA: 0s - loss: 1.1576e-04 - mean_absolute_error: 0.0084 74/126 [================>.............] - ETA: 0s - loss: 1.1784e-04 - mean_absolute_error: 0.0084 99/126 [======================>.......] - ETA: 0s - loss: 1.1929e-04 - mean_absolute_error: 0.0085123/126 [============================>.] - ETA: 0s - loss: 1.1538e-04 - mean_absolute_error: 0.0083126/126 [==============================] - 0s 2ms/step - loss: 1.1473e-04 - mean_absolute_error: 0.0083 - val_loss: 1.2552e-04 - val_mean_absolute_error: 0.0088
Epoch 29/100
  1/126 [..............................] - ETA: 0s - loss: 1.4166e-04 - mean_absolute_error: 0.0085 26/126 [=====>........................] - ETA: 0s - loss: 1.0724e-04 - mean_absolute_error: 0.0079 51/126 [===========>..................] - ETA: 0s - loss: 1.1532e-04 - mean_absolute_error: 0.0083 76/126 [=================>............] - ETA: 0s - loss: 1.0951e-04 - mean_absolute_error: 0.0081101/126 [=======================>......] - ETA: 0s - loss: 1.1194e-04 - mean_absolute_error: 0.0081125/126 [============================>.] - ETA: 0s - loss: 1.0935e-04 - mean_absolute_error: 0.0080126/126 [==============================] - 0s 2ms/step - loss: 1.0934e-04 - mean_absolute_error: 0.0080 - val_loss: 1.0887e-04 - val_mean_absolute_error: 0.0082
Epoch 30/100
  1/126 [..............................] - ETA: 0s - loss: 6.6513e-05 - mean_absolute_error: 0.0068 24/126 [====>.........................] - ETA: 0s - loss: 9.0232e-05 - mean_absolute_error: 0.0074 48/126 [==========>...................] - ETA: 0s - loss: 9.9905e-05 - mean_absolute_error: 0.0076 70/126 [===============>..............] - ETA: 0s - loss: 1.0275e-04 - mean_absolute_error: 0.0076 94/126 [=====================>........] - ETA: 0s - loss: 1.0563e-04 - mean_absolute_error: 0.0078118/126 [===========================>..] - ETA: 0s - loss: 1.0516e-04 - mean_absolute_error: 0.0078126/126 [==============================] - 0s 3ms/step - loss: 1.0444e-04 - mean_absolute_error: 0.0077 - val_loss: 1.0405e-04 - val_mean_absolute_error: 0.0079
Epoch 31/100
  1/126 [..............................] - ETA: 0s - loss: 1.1595e-04 - mean_absolute_error: 0.0085 23/126 [====>.........................] - ETA: 0s - loss: 9.3938e-05 - mean_absolute_error: 0.0071 47/126 [==========>...................] - ETA: 0s - loss: 9.5075e-05 - mean_absolute_error: 0.0073 71/126 [===============>..............] - ETA: 0s - loss: 9.4148e-05 - mean_absolute_error: 0.0073 95/126 [=====================>........] - ETA: 0s - loss: 1.0063e-04 - mean_absolute_error: 0.0076119/126 [===========================>..] - ETA: 0s - loss: 1.0164e-04 - mean_absolute_error: 0.0076126/126 [==============================] - 0s 2ms/step - loss: 1.0158e-04 - mean_absolute_error: 0.0076 - val_loss: 1.0929e-04 - val_mean_absolute_error: 0.0082
Epoch 32/100
  1/126 [..............................] - ETA: 0s - loss: 8.8461e-05 - mean_absolute_error: 0.0061 25/126 [====>.........................] - ETA: 0s - loss: 1.0732e-04 - mean_absolute_error: 0.0079 50/126 [==========>...................] - ETA: 0s - loss: 1.0275e-04 - mean_absolute_error: 0.0077 74/126 [================>.............] - ETA: 0s - loss: 1.0001e-04 - mean_absolute_error: 0.0076 99/126 [======================>.......] - ETA: 0s - loss: 1.0871e-04 - mean_absolute_error: 0.0079124/126 [============================>.] - ETA: 0s - loss: 1.1566e-04 - mean_absolute_error: 0.0083126/126 [==============================] - 0s 2ms/step - loss: 1.1524e-04 - mean_absolute_error: 0.0082 - val_loss: 1.5633e-04 - val_mean_absolute_error: 0.0099
Epoch 33/100
  1/126 [..............................] - ETA: 0s - loss: 1.3658e-04 - mean_absolute_error: 0.0094 25/126 [====>.........................] - ETA: 0s - loss: 1.0487e-04 - mean_absolute_error: 0.0078 50/126 [==========>...................] - ETA: 0s - loss: 1.0631e-04 - mean_absolute_error: 0.0079 74/126 [================>.............] - ETA: 0s - loss: 1.1791e-04 - mean_absolute_error: 0.0083 96/126 [=====================>........] - ETA: 0s - loss: 1.1767e-04 - mean_absolute_error: 0.0083119/126 [===========================>..] - ETA: 0s - loss: 1.1231e-04 - mean_absolute_error: 0.0081126/126 [==============================] - 0s 3ms/step - loss: 1.1093e-04 - mean_absolute_error: 0.0081 - val_loss: 1.0478e-04 - val_mean_absolute_error: 0.0080
Epoch 34/100
  1/126 [..............................] - ETA: 0s - loss: 2.2430e-04 - mean_absolute_error: 0.0096 25/126 [====>.........................] - ETA: 0s - loss: 9.7874e-05 - mean_absolute_error: 0.0074 47/126 [==========>...................] - ETA: 0s - loss: 9.6413e-05 - mean_absolute_error: 0.0074 71/126 [===============>..............] - ETA: 0s - loss: 9.7211e-05 - mean_absolute_error: 0.0075 95/126 [=====================>........] - ETA: 0s - loss: 9.8772e-05 - mean_absolute_error: 0.0075117/126 [==========================>...] - ETA: 0s - loss: 9.7839e-05 - mean_absolute_error: 0.0075126/126 [==============================] - 0s 3ms/step - loss: 9.9212e-05 - mean_absolute_error: 0.0076 - val_loss: 1.2823e-04 - val_mean_absolute_error: 0.0089
Epoch 35/100
  1/126 [..............................] - ETA: 0s - loss: 2.3395e-04 - mean_absolute_error: 0.0113 25/126 [====>.........................] - ETA: 0s - loss: 9.9498e-05 - mean_absolute_error: 0.0075 49/126 [==========>...................] - ETA: 0s - loss: 1.0259e-04 - mean_absolute_error: 0.0077 74/126 [================>.............] - ETA: 0s - loss: 1.0688e-04 - mean_absolute_error: 0.0079 99/126 [======================>.......] - ETA: 0s - loss: 1.1727e-04 - mean_absolute_error: 0.0084123/126 [============================>.] - ETA: 0s - loss: 1.2272e-04 - mean_absolute_error: 0.0085126/126 [==============================] - 0s 2ms/step - loss: 1.2228e-04 - mean_absolute_error: 0.0085 - val_loss: 1.0344e-04 - val_mean_absolute_error: 0.0079
Epoch 36/100
  1/126 [..............................] - ETA: 0s - loss: 8.0691e-05 - mean_absolute_error: 0.0069 25/126 [====>.........................] - ETA: 0s - loss: 1.0665e-04 - mean_absolute_error: 0.0079 50/126 [==========>...................] - ETA: 0s - loss: 1.0978e-04 - mean_absolute_error: 0.0079 75/126 [================>.............] - ETA: 0s - loss: 1.0849e-04 - mean_absolute_error: 0.0079 99/126 [======================>.......] - ETA: 0s - loss: 1.1608e-04 - mean_absolute_error: 0.0083121/126 [===========================>..] - ETA: 0s - loss: 1.1482e-04 - mean_absolute_error: 0.0082126/126 [==============================] - 0s 2ms/step - loss: 1.1367e-04 - mean_absolute_error: 0.0082 - val_loss: 1.1330e-04 - val_mean_absolute_error: 0.0084
Epoch 37/100
  1/126 [..............................] - ETA: 0s - loss: 7.4781e-05 - mean_absolute_error: 0.0072 25/126 [====>.........................] - ETA: 0s - loss: 9.0102e-05 - mean_absolute_error: 0.0074 47/126 [==========>...................] - ETA: 0s - loss: 9.2186e-05 - mean_absolute_error: 0.0074 66/126 [==============>...............] - ETA: 0s - loss: 1.1265e-04 - mean_absolute_error: 0.0082 89/126 [====================>.........] - ETA: 0s - loss: 1.1114e-04 - mean_absolute_error: 0.0081113/126 [=========================>....] - ETA: 0s - loss: 1.1676e-04 - mean_absolute_error: 0.0083126/126 [==============================] - 0s 3ms/step - loss: 1.1252e-04 - mean_absolute_error: 0.0082 - val_loss: 1.3377e-04 - val_mean_absolute_error: 0.0093
Epoch 38/100
  1/126 [..............................] - ETA: 0s - loss: 1.0278e-04 - mean_absolute_error: 0.0076 25/126 [====>.........................] - ETA: 0s - loss: 9.3595e-05 - mean_absolute_error: 0.0074 50/126 [==========>...................] - ETA: 0s - loss: 9.7080e-05 - mean_absolute_error: 0.0076 75/126 [================>.............] - ETA: 0s - loss: 1.0200e-04 - mean_absolute_error: 0.0077 99/126 [======================>.......] - ETA: 0s - loss: 1.0259e-04 - mean_absolute_error: 0.0076124/126 [============================>.] - ETA: 0s - loss: 1.0101e-04 - mean_absolute_error: 0.0076126/126 [==============================] - 0s 2ms/step - loss: 1.0083e-04 - mean_absolute_error: 0.0076 - val_loss: 1.1947e-04 - val_mean_absolute_error: 0.0085
Epoch 39/100
  1/126 [..............................] - ETA: 0s - loss: 1.1380e-04 - mean_absolute_error: 0.0092 26/126 [=====>........................] - ETA: 0s - loss: 1.2835e-04 - mean_absolute_error: 0.0086 51/126 [===========>..................] - ETA: 0s - loss: 1.2359e-04 - mean_absolute_error: 0.0085 75/126 [================>.............] - ETA: 0s - loss: 1.1635e-04 - mean_absolute_error: 0.0083 99/126 [======================>.......] - ETA: 0s - loss: 1.1080e-04 - mean_absolute_error: 0.0081124/126 [============================>.] - ETA: 0s - loss: 1.0768e-04 - mean_absolute_error: 0.0079126/126 [==============================] - 0s 2ms/step - loss: 1.0769e-04 - mean_absolute_error: 0.0079 - val_loss: 1.1610e-04 - val_mean_absolute_error: 0.0086
Epoch 40/100
  1/126 [..............................] - ETA: 0s - loss: 9.0524e-05 - mean_absolute_error: 0.0074 24/126 [====>.........................] - ETA: 0s - loss: 9.4571e-05 - mean_absolute_error: 0.0074 48/126 [==========>...................] - ETA: 0s - loss: 1.2086e-04 - mean_absolute_error: 0.0084 72/126 [================>.............] - ETA: 0s - loss: 1.1942e-04 - mean_absolute_error: 0.0084 94/126 [=====================>........] - ETA: 0s - loss: 1.1800e-04 - mean_absolute_error: 0.0084119/126 [===========================>..] - ETA: 0s - loss: 1.2133e-04 - mean_absolute_error: 0.0085126/126 [==============================] - 0s 3ms/step - loss: 1.2525e-04 - mean_absolute_error: 0.0087 - val_loss: 2.6324e-04 - val_mean_absolute_error: 0.0136
Epoch 41/100
  1/126 [..............................] - ETA: 0s - loss: 2.1113e-04 - mean_absolute_error: 0.0127 25/126 [====>.........................] - ETA: 0s - loss: 1.1051e-04 - mean_absolute_error: 0.0079 49/126 [==========>...................] - ETA: 0s - loss: 1.0419e-04 - mean_absolute_error: 0.0077 73/126 [================>.............] - ETA: 0s - loss: 1.0627e-04 - mean_absolute_error: 0.0078 98/126 [======================>.......] - ETA: 0s - loss: 1.1207e-04 - mean_absolute_error: 0.0081123/126 [============================>.] - ETA: 0s - loss: 1.1264e-04 - mean_absolute_error: 0.0081126/126 [==============================] - 0s 2ms/step - loss: 1.1296e-04 - mean_absolute_error: 0.0081 - val_loss: 1.1776e-04 - val_mean_absolute_error: 0.0085
Epoch 42/100
  1/126 [..............................] - ETA: 0s - loss: 2.2003e-04 - mean_absolute_error: 0.0099 26/126 [=====>........................] - ETA: 0s - loss: 9.8209e-05 - mean_absolute_error: 0.0075 51/126 [===========>..................] - ETA: 0s - loss: 1.0056e-04 - mean_absolute_error: 0.0076 76/126 [=================>............] - ETA: 0s - loss: 1.0666e-04 - mean_absolute_error: 0.0079101/126 [=======================>......] - ETA: 0s - loss: 1.0597e-04 - mean_absolute_error: 0.0078126/126 [==============================] - ETA: 0s - loss: 1.0432e-04 - mean_absolute_error: 0.0078126/126 [==============================] - 0s 2ms/step - loss: 1.0432e-04 - mean_absolute_error: 0.0078 - val_loss: 1.3048e-04 - val_mean_absolute_error: 0.0092
Epoch 43/100
  1/126 [..............................] - ETA: 0s - loss: 7.4684e-05 - mean_absolute_error: 0.0067 23/126 [====>.........................] - ETA: 0s - loss: 1.3937e-04 - mean_absolute_error: 0.0094 46/126 [=========>....................] - ETA: 0s - loss: 1.4573e-04 - mean_absolute_error: 0.0096 70/126 [===============>..............] - ETA: 0s - loss: 1.3777e-04 - mean_absolute_error: 0.0092 94/126 [=====================>........] - ETA: 0s - loss: 1.3523e-04 - mean_absolute_error: 0.0091117/126 [==========================>...] - ETA: 0s - loss: 1.2805e-04 - mean_absolute_error: 0.0088126/126 [==============================] - 0s 3ms/step - loss: 1.2721e-04 - mean_absolute_error: 0.0088 - val_loss: 1.1463e-04 - val_mean_absolute_error: 0.0084
Epoch 44/100
  1/126 [..............................] - ETA: 0s - loss: 9.7076e-05 - mean_absolute_error: 0.0076 25/126 [====>.........................] - ETA: 0s - loss: 1.3145e-04 - mean_absolute_error: 0.0087 49/126 [==========>...................] - ETA: 0s - loss: 1.1587e-04 - mean_absolute_error: 0.0083 74/126 [================>.............] - ETA: 0s - loss: 1.1500e-04 - mean_absolute_error: 0.0082 99/126 [======================>.......] - ETA: 0s - loss: 1.1182e-04 - mean_absolute_error: 0.0081123/126 [============================>.] - ETA: 0s - loss: 1.1415e-04 - mean_absolute_error: 0.0082126/126 [==============================] - 0s 2ms/step - loss: 1.1397e-04 - mean_absolute_error: 0.0083 - val_loss: 1.4207e-04 - val_mean_absolute_error: 0.0096
Epoch 45/100
  1/126 [..............................] - ETA: 0s - loss: 8.5496e-05 - mean_absolute_error: 0.0073 25/126 [====>.........................] - ETA: 0s - loss: 1.5676e-04 - mean_absolute_error: 0.0100 50/126 [==========>...................] - ETA: 0s - loss: 1.2671e-04 - mean_absolute_error: 0.0088 75/126 [================>.............] - ETA: 0s - loss: 1.1772e-04 - mean_absolute_error: 0.0084100/126 [======================>.......] - ETA: 0s - loss: 1.1380e-04 - mean_absolute_error: 0.0082125/126 [============================>.] - ETA: 0s - loss: 1.1145e-04 - mean_absolute_error: 0.0081126/126 [==============================] - 0s 2ms/step - loss: 1.1133e-04 - mean_absolute_error: 0.0081 - val_loss: 1.0720e-04 - val_mean_absolute_error: 0.0081
Epoch 46/100
  1/126 [..............................] - ETA: 0s - loss: 1.1460e-04 - mean_absolute_error: 0.0090 25/126 [====>.........................] - ETA: 0s - loss: 1.2938e-04 - mean_absolute_error: 0.0090 50/126 [==========>...................] - ETA: 0s - loss: 1.3415e-04 - mean_absolute_error: 0.0090 72/126 [================>.............] - ETA: 0s - loss: 1.2314e-04 - mean_absolute_error: 0.0085 95/126 [=====================>........] - ETA: 0s - loss: 1.1726e-04 - mean_absolute_error: 0.0083118/126 [===========================>..] - ETA: 0s - loss: 1.1700e-04 - mean_absolute_error: 0.0083126/126 [==============================] - 0s 3ms/step - loss: 1.1812e-04 - mean_absolute_error: 0.0084 - val_loss: 1.4136e-04 - val_mean_absolute_error: 0.0094
Epoch 47/100
  1/126 [..............................] - ETA: 0s - loss: 2.1109e-04 - mean_absolute_error: 0.0117 24/126 [====>.........................] - ETA: 0s - loss: 1.7886e-04 - mean_absolute_error: 0.0107 49/126 [==========>...................] - ETA: 0s - loss: 1.6161e-04 - mean_absolute_error: 0.0101 73/126 [================>.............] - ETA: 0s - loss: 1.4368e-04 - mean_absolute_error: 0.0093 98/126 [======================>.......] - ETA: 0s - loss: 1.3151e-04 - mean_absolute_error: 0.0088123/126 [============================>.] - ETA: 0s - loss: 1.2901e-04 - mean_absolute_error: 0.0088126/126 [==============================] - 0s 2ms/step - loss: 1.2872e-04 - mean_absolute_error: 0.0088 - val_loss: 1.4691e-04 - val_mean_absolute_error: 0.0096
Epoch 48/100
  1/126 [..............................] - ETA: 0s - loss: 2.4527e-04 - mean_absolute_error: 0.0127 26/126 [=====>........................] - ETA: 0s - loss: 1.0534e-04 - mean_absolute_error: 0.0078 51/126 [===========>..................] - ETA: 0s - loss: 9.7350e-05 - mean_absolute_error: 0.0075 76/126 [=================>............] - ETA: 0s - loss: 1.0186e-04 - mean_absolute_error: 0.0076100/126 [======================>.......] - ETA: 0s - loss: 9.9879e-05 - mean_absolute_error: 0.0076125/126 [============================>.] - ETA: 0s - loss: 1.0340e-04 - mean_absolute_error: 0.0077126/126 [==============================] - 0s 2ms/step - loss: 1.0363e-04 - mean_absolute_error: 0.0077 - val_loss: 1.9339e-04 - val_mean_absolute_error: 0.0113
Epoch 49/100
  1/126 [..............................] - ETA: 0s - loss: 1.8436e-04 - mean_absolute_error: 0.0112 26/126 [=====>........................] - ETA: 0s - loss: 1.0683e-04 - mean_absolute_error: 0.0079 39/126 [========>.....................] - ETA: 0s - loss: 1.1207e-04 - mean_absolute_error: 0.0081 54/126 [===========>..................] - ETA: 0s - loss: 1.1198e-04 - mean_absolute_error: 0.0080 78/126 [=================>............] - ETA: 0s - loss: 1.1431e-04 - mean_absolute_error: 0.0082103/126 [=======================>......] - ETA: 0s - loss: 1.1171e-04 - mean_absolute_error: 0.0081126/126 [==============================] - ETA: 0s - loss: 1.1267e-04 - mean_absolute_error: 0.0081126/126 [==============================] - 0s 3ms/step - loss: 1.1267e-04 - mean_absolute_error: 0.0081 - val_loss: 1.1492e-04 - val_mean_absolute_error: 0.0085
Epoch 50/100
  1/126 [..............................] - ETA: 0s - loss: 6.8561e-05 - mean_absolute_error: 0.0066 25/126 [====>.........................] - ETA: 0s - loss: 9.5304e-05 - mean_absolute_error: 0.0075 50/126 [==========>...................] - ETA: 0s - loss: 1.0086e-04 - mean_absolute_error: 0.0077 75/126 [================>.............] - ETA: 0s - loss: 1.1184e-04 - mean_absolute_error: 0.0081100/126 [======================>.......] - ETA: 0s - loss: 1.1466e-04 - mean_absolute_error: 0.0083124/126 [============================>.] - ETA: 0s - loss: 1.1059e-04 - mean_absolute_error: 0.0081126/126 [==============================] - 0s 2ms/step - loss: 1.1027e-04 - mean_absolute_error: 0.0081 - val_loss: 1.0429e-04 - val_mean_absolute_error: 0.0079
Epoch 51/100
  1/126 [..............................] - ETA: 0s - loss: 1.0536e-04 - mean_absolute_error: 0.0084 26/126 [=====>........................] - ETA: 0s - loss: 1.1586e-04 - mean_absolute_error: 0.0085 51/126 [===========>..................] - ETA: 0s - loss: 1.0404e-04 - mean_absolute_error: 0.0080 75/126 [================>.............] - ETA: 0s - loss: 9.9158e-05 - mean_absolute_error: 0.0077100/126 [======================>.......] - ETA: 0s - loss: 9.7589e-05 - mean_absolute_error: 0.0076124/126 [============================>.] - ETA: 0s - loss: 1.0246e-04 - mean_absolute_error: 0.0078126/126 [==============================] - 0s 2ms/step - loss: 1.0239e-04 - mean_absolute_error: 0.0078 - val_loss: 1.1881e-04 - val_mean_absolute_error: 0.0087
Epoch 52/100
  1/126 [..............................] - ETA: 0s - loss: 1.0378e-04 - mean_absolute_error: 0.0079 25/126 [====>.........................] - ETA: 0s - loss: 1.0602e-04 - mean_absolute_error: 0.0079 50/126 [==========>...................] - ETA: 0s - loss: 1.1536e-04 - mean_absolute_error: 0.0083 72/126 [================>.............] - ETA: 0s - loss: 1.4609e-04 - mean_absolute_error: 0.0094 94/126 [=====================>........] - ETA: 0s - loss: 1.3656e-04 - mean_absolute_error: 0.0091118/126 [===========================>..] - ETA: 0s - loss: 1.2956e-04 - mean_absolute_error: 0.0088126/126 [==============================] - 0s 2ms/step - loss: 1.2637e-04 - mean_absolute_error: 0.0086 - val_loss: 1.2922e-04 - val_mean_absolute_error: 0.0090
Epoch 53/100
  1/126 [..............................] - ETA: 0s - loss: 1.5164e-04 - mean_absolute_error: 0.0094 22/126 [====>.........................] - ETA: 0s - loss: 1.3198e-04 - mean_absolute_error: 0.0090 47/126 [==========>...................] - ETA: 0s - loss: 1.5205e-04 - mean_absolute_error: 0.0097 72/126 [================>.............] - ETA: 0s - loss: 1.3287e-04 - mean_absolute_error: 0.0089 97/126 [======================>.......] - ETA: 0s - loss: 1.2351e-04 - mean_absolute_error: 0.0086122/126 [============================>.] - ETA: 0s - loss: 1.1860e-04 - mean_absolute_error: 0.0084126/126 [==============================] - 0s 2ms/step - loss: 1.1779e-04 - mean_absolute_error: 0.0083 - val_loss: 1.0232e-04 - val_mean_absolute_error: 0.0078
Epoch 54/100
  1/126 [..............................] - ETA: 0s - loss: 3.0377e-05 - mean_absolute_error: 0.0042 25/126 [====>.........................] - ETA: 0s - loss: 1.0455e-04 - mean_absolute_error: 0.0076 50/126 [==========>...................] - ETA: 0s - loss: 1.1394e-04 - mean_absolute_error: 0.0080 74/126 [================>.............] - ETA: 0s - loss: 1.1299e-04 - mean_absolute_error: 0.0081 98/126 [======================>.......] - ETA: 0s - loss: 1.1496e-04 - mean_absolute_error: 0.0082122/126 [============================>.] - ETA: 0s - loss: 1.1020e-04 - mean_absolute_error: 0.0081126/126 [==============================] - 0s 2ms/step - loss: 1.0996e-04 - mean_absolute_error: 0.0081 - val_loss: 9.9054e-05 - val_mean_absolute_error: 0.0076
Epoch 55/100
  1/126 [..............................] - ETA: 0s - loss: 8.9029e-05 - mean_absolute_error: 0.0073 25/126 [====>.........................] - ETA: 0s - loss: 9.0689e-05 - mean_absolute_error: 0.0073 50/126 [==========>...................] - ETA: 0s - loss: 9.5605e-05 - mean_absolute_error: 0.0074 75/126 [================>.............] - ETA: 0s - loss: 9.7132e-05 - mean_absolute_error: 0.0075 97/126 [======================>.......] - ETA: 0s - loss: 9.8941e-05 - mean_absolute_error: 0.0076119/126 [===========================>..] - ETA: 0s - loss: 9.9547e-05 - mean_absolute_error: 0.0076126/126 [==============================] - 0s 2ms/step - loss: 9.8559e-05 - mean_absolute_error: 0.0076 - val_loss: 1.1711e-04 - val_mean_absolute_error: 0.0085
Epoch 56/100
  1/126 [..............................] - ETA: 0s - loss: 9.2462e-05 - mean_absolute_error: 0.0079 26/126 [=====>........................] - ETA: 0s - loss: 1.1282e-04 - mean_absolute_error: 0.0081 48/126 [==========>...................] - ETA: 0s - loss: 1.1672e-04 - mean_absolute_error: 0.0083 72/126 [================>.............] - ETA: 0s - loss: 1.0672e-04 - mean_absolute_error: 0.0078 96/126 [=====================>........] - ETA: 0s - loss: 1.0938e-04 - mean_absolute_error: 0.0081120/126 [===========================>..] - ETA: 0s - loss: 1.1424e-04 - mean_absolute_error: 0.0083126/126 [==============================] - 0s 3ms/step - loss: 1.1478e-04 - mean_absolute_error: 0.0083 - val_loss: 2.4540e-04 - val_mean_absolute_error: 0.0131
Epoch 57/100
  1/126 [..............................] - ETA: 0s - loss: 2.2124e-04 - mean_absolute_error: 0.0121 25/126 [====>.........................] - ETA: 0s - loss: 1.5822e-04 - mean_absolute_error: 0.0101 50/126 [==========>...................] - ETA: 0s - loss: 1.3121e-04 - mean_absolute_error: 0.0090 74/126 [================>.............] - ETA: 0s - loss: 1.2564e-04 - mean_absolute_error: 0.0087 99/126 [======================>.......] - ETA: 0s - loss: 1.2432e-04 - mean_absolute_error: 0.0087123/126 [============================>.] - ETA: 0s - loss: 1.2369e-04 - mean_absolute_error: 0.0087126/126 [==============================] - 0s 2ms/step - loss: 1.2430e-04 - mean_absolute_error: 0.0087 - val_loss: 1.6701e-04 - val_mean_absolute_error: 0.0106
Epoch 58/100
  1/126 [..............................] - ETA: 0s - loss: 8.2033e-05 - mean_absolute_error: 0.0074 25/126 [====>.........................] - ETA: 0s - loss: 1.5400e-04 - mean_absolute_error: 0.0096 49/126 [==========>...................] - ETA: 0s - loss: 1.2575e-04 - mean_absolute_error: 0.0086 73/126 [================>.............] - ETA: 0s - loss: 1.1399e-04 - mean_absolute_error: 0.0081 97/126 [======================>.......] - ETA: 0s - loss: 1.0751e-04 - mean_absolute_error: 0.0079120/126 [===========================>..] - ETA: 0s - loss: 1.0696e-04 - mean_absolute_error: 0.0079126/126 [==============================] - 0s 2ms/step - loss: 1.0608e-04 - mean_absolute_error: 0.0078 - val_loss: 1.0251e-04 - val_mean_absolute_error: 0.0079
Epoch 59/100
  1/126 [..............................] - ETA: 0s - loss: 8.7767e-05 - mean_absolute_error: 0.0067 24/126 [====>.........................] - ETA: 0s - loss: 8.7781e-05 - mean_absolute_error: 0.0070 48/126 [==========>...................] - ETA: 0s - loss: 8.6171e-05 - mean_absolute_error: 0.0071 70/126 [===============>..............] - ETA: 0s - loss: 9.4153e-05 - mean_absolute_error: 0.0074 94/126 [=====================>........] - ETA: 0s - loss: 9.4728e-05 - mean_absolute_error: 0.0074118/126 [===========================>..] - ETA: 0s - loss: 1.0465e-04 - mean_absolute_error: 0.0078126/126 [==============================] - 0s 3ms/step - loss: 1.0582e-04 - mean_absolute_error: 0.0079 - val_loss: 9.8130e-05 - val_mean_absolute_error: 0.0077
Epoch 60/100
  1/126 [..............................] - ETA: 0s - loss: 9.1672e-05 - mean_absolute_error: 0.0072 26/126 [=====>........................] - ETA: 0s - loss: 9.9625e-05 - mean_absolute_error: 0.0078 51/126 [===========>..................] - ETA: 0s - loss: 1.5097e-04 - mean_absolute_error: 0.0095 75/126 [================>.............] - ETA: 0s - loss: 1.5032e-04 - mean_absolute_error: 0.0096 99/126 [======================>.......] - ETA: 0s - loss: 1.3744e-04 - mean_absolute_error: 0.0091124/126 [============================>.] - ETA: 0s - loss: 1.3041e-04 - mean_absolute_error: 0.0088126/126 [==============================] - 0s 2ms/step - loss: 1.3055e-04 - mean_absolute_error: 0.0088 - val_loss: 1.5691e-04 - val_mean_absolute_error: 0.0100
Epoch 61/100
  1/126 [..............................] - ETA: 0s - loss: 1.3741e-04 - mean_absolute_error: 0.0101 26/126 [=====>........................] - ETA: 0s - loss: 1.2205e-04 - mean_absolute_error: 0.0087 51/126 [===========>..................] - ETA: 0s - loss: 1.1983e-04 - mean_absolute_error: 0.0086 76/126 [=================>............] - ETA: 0s - loss: 1.2115e-04 - mean_absolute_error: 0.0087100/126 [======================>.......] - ETA: 0s - loss: 1.2934e-04 - mean_absolute_error: 0.0089125/126 [============================>.] - ETA: 0s - loss: 1.3308e-04 - mean_absolute_error: 0.0090126/126 [==============================] - 0s 2ms/step - loss: 1.3311e-04 - mean_absolute_error: 0.0090 - val_loss: 1.0435e-04 - val_mean_absolute_error: 0.0080
Epoch 62/100
  1/126 [..............................] - ETA: 0s - loss: 6.7437e-05 - mean_absolute_error: 0.0062 24/126 [====>.........................] - ETA: 0s - loss: 1.1712e-04 - mean_absolute_error: 0.0080 48/126 [==========>...................] - ETA: 0s - loss: 1.0196e-04 - mean_absolute_error: 0.0076 72/126 [================>.............] - ETA: 0s - loss: 9.9481e-05 - mean_absolute_error: 0.0075 95/126 [=====================>........] - ETA: 0s - loss: 9.8431e-05 - mean_absolute_error: 0.0075118/126 [===========================>..] - ETA: 0s - loss: 1.0226e-04 - mean_absolute_error: 0.0076126/126 [==============================] - 0s 3ms/step - loss: 1.0292e-04 - mean_absolute_error: 0.0077 - val_loss: 9.7899e-05 - val_mean_absolute_error: 0.0076
Epoch 63/100
  1/126 [..............................] - ETA: 0s - loss: 9.0160e-05 - mean_absolute_error: 0.0080 26/126 [=====>........................] - ETA: 0s - loss: 8.8214e-05 - mean_absolute_error: 0.0072 51/126 [===========>..................] - ETA: 0s - loss: 9.5916e-05 - mean_absolute_error: 0.0075 75/126 [================>.............] - ETA: 0s - loss: 1.0655e-04 - mean_absolute_error: 0.0078100/126 [======================>.......] - ETA: 0s - loss: 1.1439e-04 - mean_absolute_error: 0.0082125/126 [============================>.] - ETA: 0s - loss: 1.1049e-04 - mean_absolute_error: 0.0080126/126 [==============================] - 0s 2ms/step - loss: 1.1046e-04 - mean_absolute_error: 0.0080 - val_loss: 9.6681e-05 - val_mean_absolute_error: 0.0075
Epoch 64/100
  1/126 [..............................] - ETA: 0s - loss: 7.2602e-05 - mean_absolute_error: 0.0065 26/126 [=====>........................] - ETA: 0s - loss: 9.9353e-05 - mean_absolute_error: 0.0074 51/126 [===========>..................] - ETA: 0s - loss: 9.7491e-05 - mean_absolute_error: 0.0075 75/126 [================>.............] - ETA: 0s - loss: 1.0086e-04 - mean_absolute_error: 0.0076 99/126 [======================>.......] - ETA: 0s - loss: 1.0704e-04 - mean_absolute_error: 0.0080123/126 [============================>.] - ETA: 0s - loss: 1.1277e-04 - mean_absolute_error: 0.0082126/126 [==============================] - 0s 2ms/step - loss: 1.1255e-04 - mean_absolute_error: 0.0082 - val_loss: 1.4139e-04 - val_mean_absolute_error: 0.0094
Epoch 65/100
  1/126 [..............................] - ETA: 0s - loss: 1.1290e-04 - mean_absolute_error: 0.0087 26/126 [=====>........................] - ETA: 0s - loss: 1.0430e-04 - mean_absolute_error: 0.0080 48/126 [==========>...................] - ETA: 0s - loss: 1.1442e-04 - mean_absolute_error: 0.0083 70/126 [===============>..............] - ETA: 0s - loss: 1.1172e-04 - mean_absolute_error: 0.0082 94/126 [=====================>........] - ETA: 0s - loss: 1.1583e-04 - mean_absolute_error: 0.0083117/126 [==========================>...] - ETA: 0s - loss: 1.1108e-04 - mean_absolute_error: 0.0081126/126 [==============================] - 0s 3ms/step - loss: 1.0954e-04 - mean_absolute_error: 0.0081 - val_loss: 1.0138e-04 - val_mean_absolute_error: 0.0079
Epoch 66/100
  1/126 [..............................] - ETA: 0s - loss: 8.4637e-05 - mean_absolute_error: 0.0078 25/126 [====>.........................] - ETA: 0s - loss: 1.0563e-04 - mean_absolute_error: 0.0079 49/126 [==========>...................] - ETA: 0s - loss: 1.0491e-04 - mean_absolute_error: 0.0079 73/126 [================>.............] - ETA: 0s - loss: 1.1246e-04 - mean_absolute_error: 0.0081 97/126 [======================>.......] - ETA: 0s - loss: 1.1213e-04 - mean_absolute_error: 0.0081121/126 [===========================>..] - ETA: 0s - loss: 1.0825e-04 - mean_absolute_error: 0.0080126/126 [==============================] - 0s 2ms/step - loss: 1.0842e-04 - mean_absolute_error: 0.0080 - val_loss: 9.6694e-05 - val_mean_absolute_error: 0.0076
Epoch 67/100
  1/126 [..............................] - ETA: 0s - loss: 6.2493e-05 - mean_absolute_error: 0.0067 25/126 [====>.........................] - ETA: 0s - loss: 9.4253e-05 - mean_absolute_error: 0.0075 50/126 [==========>...................] - ETA: 0s - loss: 1.0131e-04 - mean_absolute_error: 0.0076 75/126 [================>.............] - ETA: 0s - loss: 1.1317e-04 - mean_absolute_error: 0.0081 99/126 [======================>.......] - ETA: 0s - loss: 1.1854e-04 - mean_absolute_error: 0.0084123/126 [============================>.] - ETA: 0s - loss: 1.1273e-04 - mean_absolute_error: 0.0082126/126 [==============================] - 0s 2ms/step - loss: 1.1192e-04 - mean_absolute_error: 0.0081 - val_loss: 9.6736e-05 - val_mean_absolute_error: 0.0077
Epoch 68/100
  1/126 [..............................] - ETA: 0s - loss: 1.3640e-04 - mean_absolute_error: 0.0074 26/126 [=====>........................] - ETA: 0s - loss: 1.0188e-04 - mean_absolute_error: 0.0075 51/126 [===========>..................] - ETA: 0s - loss: 1.0377e-04 - mean_absolute_error: 0.0078 73/126 [================>.............] - ETA: 0s - loss: 1.0768e-04 - mean_absolute_error: 0.0080 98/126 [======================>.......] - ETA: 0s - loss: 1.1022e-04 - mean_absolute_error: 0.0081122/126 [============================>.] - ETA: 0s - loss: 1.0858e-04 - mean_absolute_error: 0.0080126/126 [==============================] - 0s 2ms/step - loss: 1.0826e-04 - mean_absolute_error: 0.0080 - val_loss: 1.2363e-04 - val_mean_absolute_error: 0.0088
Epoch 69/100
  1/126 [..............................] - ETA: 0s - loss: 1.2578e-04 - mean_absolute_error: 0.0092 22/126 [====>.........................] - ETA: 0s - loss: 1.0875e-04 - mean_absolute_error: 0.0080 46/126 [=========>....................] - ETA: 0s - loss: 1.0097e-04 - mean_absolute_error: 0.0077 70/126 [===============>..............] - ETA: 0s - loss: 1.0782e-04 - mean_absolute_error: 0.0079 89/126 [====================>.........] - ETA: 0s - loss: 1.0245e-04 - mean_absolute_error: 0.0077108/126 [========================>.....] - ETA: 0s - loss: 9.9589e-05 - mean_absolute_error: 0.0076126/126 [==============================] - 0s 3ms/step - loss: 9.8965e-05 - mean_absolute_error: 0.0076 - val_loss: 9.6762e-05 - val_mean_absolute_error: 0.0076
Epoch 70/100
  1/126 [..............................] - ETA: 0s - loss: 4.7592e-05 - mean_absolute_error: 0.0057 26/126 [=====>........................] - ETA: 0s - loss: 9.3197e-05 - mean_absolute_error: 0.0074 51/126 [===========>..................] - ETA: 0s - loss: 1.0351e-04 - mean_absolute_error: 0.0078 76/126 [=================>............] - ETA: 0s - loss: 1.0110e-04 - mean_absolute_error: 0.0077101/126 [=======================>......] - ETA: 0s - loss: 9.9660e-05 - mean_absolute_error: 0.0076125/126 [============================>.] - ETA: 0s - loss: 1.0571e-04 - mean_absolute_error: 0.0079126/126 [==============================] - 0s 2ms/step - loss: 1.0555e-04 - mean_absolute_error: 0.0079 - val_loss: 1.7641e-04 - val_mean_absolute_error: 0.0110
Epoch 71/100
  1/126 [..............................] - ETA: 0s - loss: 1.9343e-04 - mean_absolute_error: 0.0115 26/126 [=====>........................] - ETA: 0s - loss: 1.1653e-04 - mean_absolute_error: 0.0081 51/126 [===========>..................] - ETA: 0s - loss: 1.1275e-04 - mean_absolute_error: 0.0081 75/126 [================>.............] - ETA: 0s - loss: 1.1174e-04 - mean_absolute_error: 0.0081 97/126 [======================>.......] - ETA: 0s - loss: 1.0737e-04 - mean_absolute_error: 0.0079119/126 [===========================>..] - ETA: 0s - loss: 1.0718e-04 - mean_absolute_error: 0.0079126/126 [==============================] - 0s 3ms/step - loss: 1.0672e-04 - mean_absolute_error: 0.0079 - val_loss: 9.4655e-05 - val_mean_absolute_error: 0.0075
Epoch 72/100
  1/126 [..............................] - ETA: 0s - loss: 7.0995e-05 - mean_absolute_error: 0.0067 22/126 [====>.........................] - ETA: 0s - loss: 1.0386e-04 - mean_absolute_error: 0.0080 46/126 [=========>....................] - ETA: 0s - loss: 1.0064e-04 - mean_absolute_error: 0.0077 71/126 [===============>..............] - ETA: 0s - loss: 9.9452e-05 - mean_absolute_error: 0.0076 96/126 [=====================>........] - ETA: 0s - loss: 9.9314e-05 - mean_absolute_error: 0.0075120/126 [===========================>..] - ETA: 0s - loss: 1.0739e-04 - mean_absolute_error: 0.0079126/126 [==============================] - 0s 2ms/step - loss: 1.0816e-04 - mean_absolute_error: 0.0080 - val_loss: 1.1212e-04 - val_mean_absolute_error: 0.0083
Epoch 73/100
  1/126 [..............................] - ETA: 0s - loss: 1.7776e-04 - mean_absolute_error: 0.0099 26/126 [=====>........................] - ETA: 0s - loss: 9.2611e-05 - mean_absolute_error: 0.0076 51/126 [===========>..................] - ETA: 0s - loss: 9.9838e-05 - mean_absolute_error: 0.0076 76/126 [=================>............] - ETA: 0s - loss: 9.8220e-05 - mean_absolute_error: 0.0076101/126 [=======================>......] - ETA: 0s - loss: 1.0262e-04 - mean_absolute_error: 0.0078126/126 [==============================] - ETA: 0s - loss: 1.0729e-04 - mean_absolute_error: 0.0080126/126 [==============================] - 0s 2ms/step - loss: 1.0729e-04 - mean_absolute_error: 0.0080 - val_loss: 3.2172e-04 - val_mean_absolute_error: 0.0155
Epoch 74/100
  1/126 [..............................] - ETA: 0s - loss: 3.7054e-04 - mean_absolute_error: 0.0166 25/126 [====>.........................] - ETA: 0s - loss: 1.5660e-04 - mean_absolute_error: 0.0097 50/126 [==========>...................] - ETA: 0s - loss: 1.2390e-04 - mean_absolute_error: 0.0086 75/126 [================>.............] - ETA: 0s - loss: 1.2224e-04 - mean_absolute_error: 0.0085 99/126 [======================>.......] - ETA: 0s - loss: 1.2353e-04 - mean_absolute_error: 0.0086121/126 [===========================>..] - ETA: 0s - loss: 1.2037e-04 - mean_absolute_error: 0.0084126/126 [==============================] - 0s 2ms/step - loss: 1.1915e-04 - mean_absolute_error: 0.0084 - val_loss: 9.3876e-05 - val_mean_absolute_error: 0.0074
Epoch 75/100
  1/126 [..............................] - ETA: 0s - loss: 6.6221e-05 - mean_absolute_error: 0.0063 23/126 [====>.........................] - ETA: 0s - loss: 9.3507e-05 - mean_absolute_error: 0.0074 46/126 [=========>....................] - ETA: 0s - loss: 9.1870e-05 - mean_absolute_error: 0.0072 68/126 [===============>..............] - ETA: 0s - loss: 9.3054e-05 - mean_absolute_error: 0.0073 92/126 [====================>.........] - ETA: 0s - loss: 9.6988e-05 - mean_absolute_error: 0.0074116/126 [==========================>...] - ETA: 0s - loss: 9.4235e-05 - mean_absolute_error: 0.0074126/126 [==============================] - 0s 3ms/step - loss: 9.9706e-05 - mean_absolute_error: 0.0076 - val_loss: 2.1107e-04 - val_mean_absolute_error: 0.0120
Epoch 76/100
  1/126 [..............................] - ETA: 0s - loss: 1.3491e-04 - mean_absolute_error: 0.0102 25/126 [====>.........................] - ETA: 0s - loss: 1.2101e-04 - mean_absolute_error: 0.0087 49/126 [==========>...................] - ETA: 0s - loss: 1.0910e-04 - mean_absolute_error: 0.0081 74/126 [================>.............] - ETA: 0s - loss: 1.0320e-04 - mean_absolute_error: 0.0078 99/126 [======================>.......] - ETA: 0s - loss: 1.0294e-04 - mean_absolute_error: 0.0078123/126 [============================>.] - ETA: 0s - loss: 1.0466e-04 - mean_absolute_error: 0.0078126/126 [==============================] - 0s 2ms/step - loss: 1.0437e-04 - mean_absolute_error: 0.0078 - val_loss: 1.1639e-04 - val_mean_absolute_error: 0.0086
Epoch 77/100
  1/126 [..............................] - ETA: 0s - loss: 5.8111e-05 - mean_absolute_error: 0.0066 25/126 [====>.........................] - ETA: 0s - loss: 1.3849e-04 - mean_absolute_error: 0.0092 50/126 [==========>...................] - ETA: 0s - loss: 1.3745e-04 - mean_absolute_error: 0.0092 75/126 [================>.............] - ETA: 0s - loss: 1.2280e-04 - mean_absolute_error: 0.0086 99/126 [======================>.......] - ETA: 0s - loss: 1.1468e-04 - mean_absolute_error: 0.0083123/126 [============================>.] - ETA: 0s - loss: 1.0964e-04 - mean_absolute_error: 0.0080126/126 [==============================] - 0s 2ms/step - loss: 1.0947e-04 - mean_absolute_error: 0.0080 - val_loss: 1.1839e-04 - val_mean_absolute_error: 0.0087
Epoch 78/100
  1/126 [..............................] - ETA: 0s - loss: 1.1032e-04 - mean_absolute_error: 0.0087 24/126 [====>.........................] - ETA: 0s - loss: 1.0760e-04 - mean_absolute_error: 0.0076 48/126 [==========>...................] - ETA: 0s - loss: 9.8923e-05 - mean_absolute_error: 0.0074 72/126 [================>.............] - ETA: 0s - loss: 9.6214e-05 - mean_absolute_error: 0.0074 94/126 [=====================>........] - ETA: 0s - loss: 1.0077e-04 - mean_absolute_error: 0.0077119/126 [===========================>..] - ETA: 0s - loss: 9.7196e-05 - mean_absolute_error: 0.0075126/126 [==============================] - 0s 2ms/step - loss: 9.6100e-05 - mean_absolute_error: 0.0075 - val_loss: 9.3228e-05 - val_mean_absolute_error: 0.0073
Epoch 79/100
  1/126 [..............................] - ETA: 0s - loss: 6.4699e-05 - mean_absolute_error: 0.0063 23/126 [====>.........................] - ETA: 0s - loss: 1.0013e-04 - mean_absolute_error: 0.0075 46/126 [=========>....................] - ETA: 0s - loss: 9.1414e-05 - mean_absolute_error: 0.0073 70/126 [===============>..............] - ETA: 0s - loss: 9.0141e-05 - mean_absolute_error: 0.0073 94/126 [=====================>........] - ETA: 0s - loss: 8.9587e-05 - mean_absolute_error: 0.0073118/126 [===========================>..] - ETA: 0s - loss: 1.0089e-04 - mean_absolute_error: 0.0077126/126 [==============================] - 0s 3ms/step - loss: 1.0007e-04 - mean_absolute_error: 0.0077 - val_loss: 1.6590e-04 - val_mean_absolute_error: 0.0106
Epoch 80/100
  1/126 [..............................] - ETA: 0s - loss: 1.0868e-04 - mean_absolute_error: 0.0084 26/126 [=====>........................] - ETA: 0s - loss: 1.0400e-04 - mean_absolute_error: 0.0077 50/126 [==========>...................] - ETA: 0s - loss: 1.0439e-04 - mean_absolute_error: 0.0078 74/126 [================>.............] - ETA: 0s - loss: 9.7915e-05 - mean_absolute_error: 0.0076 99/126 [======================>.......] - ETA: 0s - loss: 9.2992e-05 - mean_absolute_error: 0.0074124/126 [============================>.] - ETA: 0s - loss: 9.5883e-05 - mean_absolute_error: 0.0075126/126 [==============================] - 0s 2ms/step - loss: 9.5862e-05 - mean_absolute_error: 0.0075 - val_loss: 9.2997e-05 - val_mean_absolute_error: 0.0074
Epoch 81/100
  1/126 [..............................] - ETA: 0s - loss: 8.8061e-05 - mean_absolute_error: 0.0071 23/126 [====>.........................] - ETA: 0s - loss: 1.2240e-04 - mean_absolute_error: 0.0088 46/126 [=========>....................] - ETA: 0s - loss: 1.1269e-04 - mean_absolute_error: 0.0083 70/126 [===============>..............] - ETA: 0s - loss: 1.0624e-04 - mean_absolute_error: 0.0080 94/126 [=====================>........] - ETA: 0s - loss: 1.0372e-04 - mean_absolute_error: 0.0078117/126 [==========================>...] - ETA: 0s - loss: 1.0425e-04 - mean_absolute_error: 0.0079126/126 [==============================] - 0s 3ms/step - loss: 1.0306e-04 - mean_absolute_error: 0.0078 - val_loss: 1.0416e-04 - val_mean_absolute_error: 0.0080
Epoch 82/100
  1/126 [..............................] - ETA: 0s - loss: 1.1667e-04 - mean_absolute_error: 0.0089 25/126 [====>.........................] - ETA: 0s - loss: 1.1712e-04 - mean_absolute_error: 0.0083 50/126 [==========>...................] - ETA: 0s - loss: 1.0936e-04 - mean_absolute_error: 0.0081 74/126 [================>.............] - ETA: 0s - loss: 1.0510e-04 - mean_absolute_error: 0.0079 98/126 [======================>.......] - ETA: 0s - loss: 9.9438e-05 - mean_absolute_error: 0.0076122/126 [============================>.] - ETA: 0s - loss: 9.9159e-05 - mean_absolute_error: 0.0076126/126 [==============================] - 0s 2ms/step - loss: 9.8681e-05 - mean_absolute_error: 0.0076 - val_loss: 9.2125e-05 - val_mean_absolute_error: 0.0074
Epoch 83/100
  1/126 [..............................] - ETA: 0s - loss: 8.0882e-05 - mean_absolute_error: 0.0064 26/126 [=====>........................] - ETA: 0s - loss: 1.1246e-04 - mean_absolute_error: 0.0081 51/126 [===========>..................] - ETA: 0s - loss: 1.0259e-04 - mean_absolute_error: 0.0078 76/126 [=================>............] - ETA: 0s - loss: 1.1065e-04 - mean_absolute_error: 0.0081100/126 [======================>.......] - ETA: 0s - loss: 1.0312e-04 - mean_absolute_error: 0.0078124/126 [============================>.] - ETA: 0s - loss: 1.0355e-04 - mean_absolute_error: 0.0078126/126 [==============================] - 0s 2ms/step - loss: 1.0405e-04 - mean_absolute_error: 0.0078 - val_loss: 1.5059e-04 - val_mean_absolute_error: 0.0098
Epoch 84/100
  1/126 [..............................] - ETA: 0s - loss: 1.1673e-04 - mean_absolute_error: 0.0093 26/126 [=====>........................] - ETA: 0s - loss: 1.5853e-04 - mean_absolute_error: 0.0100 48/126 [==========>...................] - ETA: 0s - loss: 1.2698e-04 - mean_absolute_error: 0.0086 71/126 [===============>..............] - ETA: 0s - loss: 1.1118e-04 - mean_absolute_error: 0.0080 94/126 [=====================>........] - ETA: 0s - loss: 1.0735e-04 - mean_absolute_error: 0.0079119/126 [===========================>..] - ETA: 0s - loss: 1.0448e-04 - mean_absolute_error: 0.0078126/126 [==============================] - 0s 3ms/step - loss: 1.0439e-04 - mean_absolute_error: 0.0078 - val_loss: 1.0112e-04 - val_mean_absolute_error: 0.0078
Epoch 85/100
  1/126 [..............................] - ETA: 0s - loss: 6.8708e-05 - mean_absolute_error: 0.0069 24/126 [====>.........................] - ETA: 0s - loss: 9.3811e-05 - mean_absolute_error: 0.0074 48/126 [==========>...................] - ETA: 0s - loss: 8.9684e-05 - mean_absolute_error: 0.0072 72/126 [================>.............] - ETA: 0s - loss: 9.3824e-05 - mean_absolute_error: 0.0074 96/126 [=====================>........] - ETA: 0s - loss: 9.3300e-05 - mean_absolute_error: 0.0074120/126 [===========================>..] - ETA: 0s - loss: 9.4121e-05 - mean_absolute_error: 0.0074126/126 [==============================] - 0s 2ms/step - loss: 9.4664e-05 - mean_absolute_error: 0.0074 - val_loss: 2.9720e-04 - val_mean_absolute_error: 0.0151
Epoch 86/100
  1/126 [..............................] - ETA: 0s - loss: 4.0395e-04 - mean_absolute_error: 0.0158 25/126 [====>.........................] - ETA: 0s - loss: 1.2141e-04 - mean_absolute_error: 0.0083 50/126 [==========>...................] - ETA: 0s - loss: 1.2735e-04 - mean_absolute_error: 0.0087 75/126 [================>.............] - ETA: 0s - loss: 1.2995e-04 - mean_absolute_error: 0.0088 99/126 [======================>.......] - ETA: 0s - loss: 1.2086e-04 - mean_absolute_error: 0.0085123/126 [============================>.] - ETA: 0s - loss: 1.1477e-04 - mean_absolute_error: 0.0083126/126 [==============================] - 0s 2ms/step - loss: 1.1449e-04 - mean_absolute_error: 0.0083 - val_loss: 2.1176e-04 - val_mean_absolute_error: 0.0120
Epoch 87/100
  1/126 [..............................] - ETA: 0s - loss: 1.9242e-04 - mean_absolute_error: 0.0120 26/126 [=====>........................] - ETA: 0s - loss: 9.9936e-05 - mean_absolute_error: 0.0077 52/126 [===========>..................] - ETA: 0s - loss: 9.3597e-05 - mean_absolute_error: 0.0075 74/126 [================>.............] - ETA: 0s - loss: 9.4074e-05 - mean_absolute_error: 0.0075 99/126 [======================>.......] - ETA: 0s - loss: 9.1792e-05 - mean_absolute_error: 0.0074123/126 [============================>.] - ETA: 0s - loss: 9.1322e-05 - mean_absolute_error: 0.0073126/126 [==============================] - 0s 2ms/step - loss: 9.1520e-05 - mean_absolute_error: 0.0073 - val_loss: 2.7234e-04 - val_mean_absolute_error: 0.0143
Epoch 88/100
  1/126 [..............................] - ETA: 0s - loss: 1.8224e-04 - mean_absolute_error: 0.0118 22/126 [====>.........................] - ETA: 0s - loss: 1.0176e-04 - mean_absolute_error: 0.0078 47/126 [==========>...................] - ETA: 0s - loss: 9.5239e-05 - mean_absolute_error: 0.0074 72/126 [================>.............] - ETA: 0s - loss: 1.1353e-04 - mean_absolute_error: 0.0082 97/126 [======================>.......] - ETA: 0s - loss: 1.1341e-04 - mean_absolute_error: 0.0081122/126 [============================>.] - ETA: 0s - loss: 1.1184e-04 - mean_absolute_error: 0.0082126/126 [==============================] - 0s 2ms/step - loss: 1.1205e-04 - mean_absolute_error: 0.0082 - val_loss: 1.5740e-04 - val_mean_absolute_error: 0.0103
Epoch 89/100
  1/126 [..............................] - ETA: 0s - loss: 1.1237e-04 - mean_absolute_error: 0.0080 25/126 [====>.........................] - ETA: 0s - loss: 8.9849e-05 - mean_absolute_error: 0.0072 50/126 [==========>...................] - ETA: 0s - loss: 1.0968e-04 - mean_absolute_error: 0.0080 74/126 [================>.............] - ETA: 0s - loss: 1.1300e-04 - mean_absolute_error: 0.0082 99/126 [======================>.......] - ETA: 0s - loss: 1.0698e-04 - mean_absolute_error: 0.0079123/126 [============================>.] - ETA: 0s - loss: 1.0604e-04 - mean_absolute_error: 0.0079126/126 [==============================] - 0s 2ms/step - loss: 1.0658e-04 - mean_absolute_error: 0.0079 - val_loss: 2.5426e-04 - val_mean_absolute_error: 0.0138
Epoch 90/100
  1/126 [..............................] - ETA: 0s - loss: 2.8712e-04 - mean_absolute_error: 0.0140 25/126 [====>.........................] - ETA: 0s - loss: 1.7719e-04 - mean_absolute_error: 0.0104 50/126 [==========>...................] - ETA: 0s - loss: 1.3049e-04 - mean_absolute_error: 0.0086 76/126 [=================>............] - ETA: 0s - loss: 1.2467e-04 - mean_absolute_error: 0.0085 99/126 [======================>.......] - ETA: 0s - loss: 1.1782e-04 - mean_absolute_error: 0.0084122/126 [============================>.] - ETA: 0s - loss: 1.1201e-04 - mean_absolute_error: 0.0082126/126 [==============================] - 0s 2ms/step - loss: 1.1173e-04 - mean_absolute_error: 0.0082 - val_loss: 1.8516e-04 - val_mean_absolute_error: 0.0114
Epoch 91/100
  1/126 [..............................] - ETA: 0s - loss: 1.1634e-04 - mean_absolute_error: 0.0093 23/126 [====>.........................] - ETA: 0s - loss: 1.0166e-04 - mean_absolute_error: 0.0079 47/126 [==========>...................] - ETA: 0s - loss: 1.1549e-04 - mean_absolute_error: 0.0084 69/126 [===============>..............] - ETA: 0s - loss: 1.2022e-04 - mean_absolute_error: 0.0085 93/126 [=====================>........] - ETA: 0s - loss: 1.0956e-04 - mean_absolute_error: 0.0081117/126 [==========================>...] - ETA: 0s - loss: 1.1307e-04 - mean_absolute_error: 0.0082126/126 [==============================] - 0s 3ms/step - loss: 1.1201e-04 - mean_absolute_error: 0.0082 - val_loss: 1.5096e-04 - val_mean_absolute_error: 0.0099
Epoch 92/100
  1/126 [..............................] - ETA: 0s - loss: 9.2777e-05 - mean_absolute_error: 0.0076 26/126 [=====>........................] - ETA: 0s - loss: 1.1601e-04 - mean_absolute_error: 0.0084 51/126 [===========>..................] - ETA: 0s - loss: 1.1049e-04 - mean_absolute_error: 0.0082 76/126 [=================>............] - ETA: 0s - loss: 1.1248e-04 - mean_absolute_error: 0.0083100/126 [======================>.......] - ETA: 0s - loss: 1.0337e-04 - mean_absolute_error: 0.0079124/126 [============================>.] - ETA: 0s - loss: 1.0193e-04 - mean_absolute_error: 0.0078126/126 [==============================] - 0s 2ms/step - loss: 1.0197e-04 - mean_absolute_error: 0.0078 - val_loss: 1.3097e-04 - val_mean_absolute_error: 0.0091
Epoch 93/100
  1/126 [..............................] - ETA: 0s - loss: 1.1862e-04 - mean_absolute_error: 0.0094 26/126 [=====>........................] - ETA: 0s - loss: 9.3672e-05 - mean_absolute_error: 0.0075 51/126 [===========>..................] - ETA: 0s - loss: 1.0417e-04 - mean_absolute_error: 0.0078 76/126 [=================>............] - ETA: 0s - loss: 1.1191e-04 - mean_absolute_error: 0.0082101/126 [=======================>......] - ETA: 0s - loss: 1.1023e-04 - mean_absolute_error: 0.0081125/126 [============================>.] - ETA: 0s - loss: 1.0455e-04 - mean_absolute_error: 0.0079126/126 [==============================] - 0s 2ms/step - loss: 1.0449e-04 - mean_absolute_error: 0.0079 - val_loss: 1.2712e-04 - val_mean_absolute_error: 0.0089
Epoch 94/100
  1/126 [..............................] - ETA: 0s - loss: 7.8378e-05 - mean_absolute_error: 0.0072 26/126 [=====>........................] - ETA: 0s - loss: 8.4129e-05 - mean_absolute_error: 0.0069 45/126 [=========>....................] - ETA: 0s - loss: 8.4131e-05 - mean_absolute_error: 0.0069 66/126 [==============>...............] - ETA: 0s - loss: 9.6855e-05 - mean_absolute_error: 0.0075 87/126 [===================>..........] - ETA: 0s - loss: 9.9462e-05 - mean_absolute_error: 0.0076111/126 [=========================>....] - ETA: 0s - loss: 9.8555e-05 - mean_absolute_error: 0.0076126/126 [==============================] - 0s 3ms/step - loss: 9.7475e-05 - mean_absolute_error: 0.0076 - val_loss: 1.1119e-04 - val_mean_absolute_error: 0.0083
Epoch 95/100
  1/126 [..............................] - ETA: 0s - loss: 8.1469e-05 - mean_absolute_error: 0.0073 24/126 [====>.........................] - ETA: 0s - loss: 8.7535e-05 - mean_absolute_error: 0.0070 48/126 [==========>...................] - ETA: 0s - loss: 8.7213e-05 - mean_absolute_error: 0.0070 72/126 [================>.............] - ETA: 0s - loss: 8.4887e-05 - mean_absolute_error: 0.0069 95/126 [=====================>........] - ETA: 0s - loss: 8.6580e-05 - mean_absolute_error: 0.0070119/126 [===========================>..] - ETA: 0s - loss: 8.9859e-05 - mean_absolute_error: 0.0072126/126 [==============================] - 0s 3ms/step - loss: 8.9134e-05 - mean_absolute_error: 0.0072 - val_loss: 8.9703e-05 - val_mean_absolute_error: 0.0074
Epoch 96/100
  1/126 [..............................] - ETA: 0s - loss: 6.0128e-05 - mean_absolute_error: 0.0064 25/126 [====>.........................] - ETA: 0s - loss: 9.3741e-05 - mean_absolute_error: 0.0074 50/126 [==========>...................] - ETA: 0s - loss: 9.7435e-05 - mean_absolute_error: 0.0075 74/126 [================>.............] - ETA: 0s - loss: 9.7671e-05 - mean_absolute_error: 0.0076 99/126 [======================>.......] - ETA: 0s - loss: 9.6837e-05 - mean_absolute_error: 0.0076124/126 [============================>.] - ETA: 0s - loss: 9.6433e-05 - mean_absolute_error: 0.0075126/126 [==============================] - 0s 2ms/step - loss: 9.6229e-05 - mean_absolute_error: 0.0075 - val_loss: 9.4282e-05 - val_mean_absolute_error: 0.0076
Epoch 97/100
  1/126 [..............................] - ETA: 0s - loss: 5.8263e-05 - mean_absolute_error: 0.0057 24/126 [====>.........................] - ETA: 0s - loss: 8.5925e-05 - mean_absolute_error: 0.0072 47/126 [==========>...................] - ETA: 0s - loss: 1.0741e-04 - mean_absolute_error: 0.0082 71/126 [===============>..............] - ETA: 0s - loss: 1.0197e-04 - mean_absolute_error: 0.0079 93/126 [=====================>........] - ETA: 0s - loss: 1.0022e-04 - mean_absolute_error: 0.0078116/126 [==========================>...] - ETA: 0s - loss: 1.1506e-04 - mean_absolute_error: 0.0083126/126 [==============================] - 0s 3ms/step - loss: 1.1303e-04 - mean_absolute_error: 0.0082 - val_loss: 8.7667e-05 - val_mean_absolute_error: 0.0071
Epoch 98/100
  1/126 [..............................] - ETA: 0s - loss: 5.0474e-05 - mean_absolute_error: 0.0057 25/126 [====>.........................] - ETA: 0s - loss: 1.1097e-04 - mean_absolute_error: 0.0082 50/126 [==========>...................] - ETA: 0s - loss: 1.1401e-04 - mean_absolute_error: 0.0083 75/126 [================>.............] - ETA: 0s - loss: 1.2569e-04 - mean_absolute_error: 0.0087 99/126 [======================>.......] - ETA: 0s - loss: 1.2613e-04 - mean_absolute_error: 0.0088124/126 [============================>.] - ETA: 0s - loss: 1.1783e-04 - mean_absolute_error: 0.0084126/126 [==============================] - 0s 2ms/step - loss: 1.1722e-04 - mean_absolute_error: 0.0084 - val_loss: 1.1223e-04 - val_mean_absolute_error: 0.0085
Epoch 99/100
  1/126 [..............................] - ETA: 0s - loss: 1.1027e-04 - mean_absolute_error: 0.0063 25/126 [====>.........................] - ETA: 0s - loss: 9.7848e-05 - mean_absolute_error: 0.0075 50/126 [==========>...................] - ETA: 0s - loss: 9.7400e-05 - mean_absolute_error: 0.0073 75/126 [================>.............] - ETA: 0s - loss: 1.0378e-04 - mean_absolute_error: 0.0078 99/126 [======================>.......] - ETA: 0s - loss: 1.0560e-04 - mean_absolute_error: 0.0079124/126 [============================>.] - ETA: 0s - loss: 1.0232e-04 - mean_absolute_error: 0.0078126/126 [==============================] - 0s 2ms/step - loss: 1.0252e-04 - mean_absolute_error: 0.0078 - val_loss: 8.7353e-05 - val_mean_absolute_error: 0.0072
Epoch 100/100
  1/126 [..............................] - ETA: 0s - loss: 6.8393e-05 - mean_absolute_error: 0.0066 25/126 [====>.........................] - ETA: 0s - loss: 8.1685e-05 - mean_absolute_error: 0.0066 48/126 [==========>...................] - ETA: 0s - loss: 8.6991e-05 - mean_absolute_error: 0.0070 72/126 [================>.............] - ETA: 0s - loss: 1.0210e-04 - mean_absolute_error: 0.0076 96/126 [=====================>........] - ETA: 0s - loss: 1.1462e-04 - mean_absolute_error: 0.0082120/126 [===========================>..] - ETA: 0s - loss: 1.0941e-04 - mean_absolute_error: 0.0081126/126 [==============================] - 0s 3ms/step - loss: 1.1083e-04 - mean_absolute_error: 0.0081 - val_loss: 1.6799e-04 - val_mean_absolute_error: 0.0108
<keras.src.callbacks.History at 0x2115a855090>

After the training and fitting of the Machine Learning model for Canada, I tried to create visualizations comparing the model against the country’s training dataset, validation dataset, but most importantly the testing dataset (as shown below in the line graphs). Note that the darker and thicker blue lines represent the prediction model’s projections and the thinner red lines is the observed/gathered data.

```{python}
# Testing the Machine Learning Model prediction for Austrailia with the train, 
# validation, and test sets
# Most important is the test set prediction as this tests the effectiveness
# of the Machine Learning model on data it has not seen before 
canada_train_pred = canada_model.predict(X_canada_train).flatten()

plt.plot(dates_canada_train, canada_train_pred, linewidth=4)
plt.plot(dates_canada_train, y_canada_train, linewidth=1)
plt.legend(["Training Predictions", "Training Observations"])
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("Canada - Training Set Predictions vs. Observations")
plt.show()

canada_val_pred = canada_model.predict(X_canada_val).flatten()

plt.plot(dates_canada_val, canada_val_pred, linewidth=4)
plt.plot(dates_canada_val, y_canada_val, linewidth=1)
plt.legend(["Validation Predictions", "Validation Observations"])
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("Canada - Validation Set Predictions vs. Observations")
plt.show()

canada_test_pred = canada_model.predict(X_canada_test).flatten()

plt.plot(dates_canada_test, canada_test_pred, linewidth=4)
plt.plot(dates_canada_test, y_canada_test, linewidth=1)
plt.legend(["Testing Predictions", "Testing Observations"])
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("Canada - Testing Set Predictions vs. Observations")
plt.show()
```
  1/126 [..............................] - ETA: 40s 35/126 [=======>......................] - ETA: 0s  76/126 [=================>............] - ETA: 0s122/126 [============================>.] - ETA: 0s126/126 [==============================] - 0s 1ms/step
 1/16 [>.............................] - ETA: 0s16/16 [==============================] - 0s 2ms/step
 1/16 [>.............................] - ETA: 0s16/16 [==============================] - 0s 2ms/step

Through careful consideration of all of the prediction-based vs. observation-based contrast visualizations together, I consolidated all of graphics into one singular visualization for you to see below to get a more general perspective of the effectiveness of the Machine Learning model at training and fitting towards predicting Canada’s international currency rate with the United States.

```{python}
# Plotting Canada's observational (reference) data with the predictions of its 
# Machine Learning Model (as a way to visually inspect the effectiveness of the 
# model) 
plt.plot(dates_canada_train, canada_train_pred, linewidth=4)
plt.plot(dates_canada_train, y_canada_train, linewidth=1)
plt.plot(dates_canada_val, canada_val_pred, linewidth=4)
plt.plot(dates_canada_val, y_canada_val, linewidth=1)
plt.plot(dates_canada_test, canada_test_pred, linewidth=4)
plt.plot(dates_canada_test, y_canada_test, linewidth=1)

plt.legend(["Training Predictions",
            "Training Observations",
            "Validation Predictions",
            "Validation Observations",
            "Testing Predictions",
            "Testing Observations"], loc="upper right")
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("Culmination of the Three Machine Learning Phases of Austrailia's Dataset - Predictions vs. Observations")
plt.show()
```

Then, I worked on the United Kingdom’s data (as shown below):

Since the data (date, X, and y) is split into three np.arrays and to be more efficient, I will manually split the United Kingdom’s data into train, test, and validation datasets for the Machine Learning model with 80% going to the training dataset, the next 10% going to the validation dataset, and the last 10% going to the test dataset for each np.array respectively.

```{python}
# Splitting United Kingdom's data into train, test, and validation sets on 3 
# mediums: the X-axis, the y-axis, and the indices (represented by dates)
dates_united_kingdom_train, X_united_kingdom_train, y_united_kingdom_train = dates_united_kingdom[:percentile_80], X_united_kingdom[:percentile_80], y_united_kingdom[:percentile_80]
dates_united_kingdom_val, X_united_kingdom_val, y_united_kingdom_val = dates_united_kingdom[percentile_80:percentile_90], X_united_kingdom[percentile_80:percentile_90], y_united_kingdom[percentile_80:percentile_90]
dates_united_kingdom_test, X_united_kingdom_test, y_united_kingdom_test = dates_united_kingdom[percentile_90:], X_united_kingdom[percentile_90:], y_united_kingdom[percentile_90:]

plt.plot(dates_united_kingdom_train, y_united_kingdom_train, linewidth=1)
plt.plot(dates_united_kingdom_val, y_united_kingdom_val, linewidth=1)
plt.plot(dates_united_kingdom_test, y_united_kingdom_test, linewidth=1)

plt.legend(["Training", "Validation", "Testing"])
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("Split of United Kingdom's Data for LSTM Model")
plt.show()
```

Now, I began to configure the Machine Learning model. We added Sequential layers: an Input layer 3 by 1 because we will have 3 np.arrays of Input and 1 np.array as output, utilize a LSTM (Long Short-Term Memory) layer of 64 neurons, apply 2 levels of dense layers with 32 neurons and folliowing recommendations online to use the RELU (Rectified Linear Unit) Activiation Function, and I followed up with one last dense layer of 1 neuron as our output layer since we are just trying to linearly-predict the next currency-rate on a near-future date. Once I configured the Sequential layers, we are ready to compile the model, utilzing the mean_square_error as our minimizing loss function, using the Adam optimizer, and comparing our trained model against our data with the mean_absolute_error metric. Lastly, I fitted our model, utilzing our X_train and Y_train datasets for fitting with validation from our X_valid and Y_valid datasets at 100 epochs.

```{python}
# Configuring the Machine Learning Tensorflow Model for United Kingdom
united_kingdom_model = Sequential([layers.Input((3, 1)),
                    layers.LSTM(64),
                    layers.Dense(32, activation="relu"),
                    layers.Dense(32, activation="relu"),
                    layers.Dense(1)])

united_kingdom_model.compile(loss="mse",
              optimizer=Adam(learning_rate=0.001),
              metrics=["mean_absolute_error"])

united_kingdom_model.fit(X_united_kingdom_train, y_united_kingdom_train, validation_data=(X_united_kingdom_val, y_united_kingdom_val), epochs=100)
```
Epoch 1/100
  1/126 [..............................] - ETA: 3:41 - loss: 0.4255 - mean_absolute_error: 0.6487 20/126 [===>..........................] - ETA: 0s - loss: 0.2700 - mean_absolute_error: 0.5120   45/126 [=========>....................] - ETA: 0s - loss: 0.1427 - mean_absolute_error: 0.3202 70/126 [===============>..............] - ETA: 0s - loss: 0.0926 - mean_absolute_error: 0.2199 95/126 [=====================>........] - ETA: 0s - loss: 0.0684 - mean_absolute_error: 0.1684122/126 [============================>.] - ETA: 0s - loss: 0.0535 - mean_absolute_error: 0.1361126/126 [==============================] - 2s 6ms/step - loss: 0.0520 - mean_absolute_error: 0.1331 - val_loss: 0.0048 - val_mean_absolute_error: 0.0668
Epoch 2/100
  1/126 [..............................] - ETA: 0s - loss: 6.8098e-04 - mean_absolute_error: 0.0213 26/126 [=====>........................] - ETA: 0s - loss: 7.6637e-04 - mean_absolute_error: 0.0226 52/126 [===========>..................] - ETA: 0s - loss: 7.3276e-04 - mean_absolute_error: 0.0219 75/126 [================>.............] - ETA: 0s - loss: 7.0707e-04 - mean_absolute_error: 0.0214102/126 [=======================>......] - ETA: 0s - loss: 6.9295e-04 - mean_absolute_error: 0.0214126/126 [==============================] - 0s 2ms/step - loss: 6.8410e-04 - mean_absolute_error: 0.0213 - val_loss: 0.0035 - val_mean_absolute_error: 0.0562
Epoch 3/100
  1/126 [..............................] - ETA: 0s - loss: 6.3600e-04 - mean_absolute_error: 0.0201 22/126 [====>.........................] - ETA: 0s - loss: 5.8275e-04 - mean_absolute_error: 0.0195 49/126 [==========>...................] - ETA: 0s - loss: 5.8675e-04 - mean_absolute_error: 0.0196 75/126 [================>.............] - ETA: 0s - loss: 5.6806e-04 - mean_absolute_error: 0.0193100/126 [======================>.......] - ETA: 0s - loss: 5.5582e-04 - mean_absolute_error: 0.0192126/126 [==============================] - 0s 2ms/step - loss: 5.3206e-04 - mean_absolute_error: 0.0187 - val_loss: 0.0027 - val_mean_absolute_error: 0.0498
Epoch 4/100
  1/126 [..............................] - ETA: 0s - loss: 3.5350e-04 - mean_absolute_error: 0.0159 20/126 [===>..........................] - ETA: 0s - loss: 4.0822e-04 - mean_absolute_error: 0.0163 42/126 [=========>....................] - ETA: 0s - loss: 4.2554e-04 - mean_absolute_error: 0.0169 66/126 [==============>...............] - ETA: 0s - loss: 4.0742e-04 - mean_absolute_error: 0.0165 93/126 [=====================>........] - ETA: 0s - loss: 3.9439e-04 - mean_absolute_error: 0.0161118/126 [===========================>..] - ETA: 0s - loss: 3.8052e-04 - mean_absolute_error: 0.0158126/126 [==============================] - 0s 3ms/step - loss: 3.7358e-04 - mean_absolute_error: 0.0157 - val_loss: 0.0013 - val_mean_absolute_error: 0.0336
Epoch 5/100
  1/126 [..............................] - ETA: 0s - loss: 2.7776e-04 - mean_absolute_error: 0.0132 26/126 [=====>........................] - ETA: 0s - loss: 2.9362e-04 - mean_absolute_error: 0.0137 53/126 [===========>..................] - ETA: 0s - loss: 2.7146e-04 - mean_absolute_error: 0.0133 80/126 [==================>...........] - ETA: 0s - loss: 2.5078e-04 - mean_absolute_error: 0.0127103/126 [=======================>......] - ETA: 0s - loss: 2.4117e-04 - mean_absolute_error: 0.0125126/126 [==============================] - 0s 2ms/step - loss: 2.3251e-04 - mean_absolute_error: 0.0122 - val_loss: 6.3826e-04 - val_mean_absolute_error: 0.0233
Epoch 6/100
  1/126 [..............................] - ETA: 0s - loss: 1.5053e-04 - mean_absolute_error: 0.0097 24/126 [====>.........................] - ETA: 0s - loss: 1.4972e-04 - mean_absolute_error: 0.0099 51/126 [===========>..................] - ETA: 0s - loss: 1.4755e-04 - mean_absolute_error: 0.0097 76/126 [=================>............] - ETA: 0s - loss: 1.3784e-04 - mean_absolute_error: 0.0094103/126 [=======================>......] - ETA: 0s - loss: 1.3081e-04 - mean_absolute_error: 0.0091126/126 [==============================] - 0s 2ms/step - loss: 1.2500e-04 - mean_absolute_error: 0.0089 - val_loss: 4.0130e-04 - val_mean_absolute_error: 0.0183
Epoch 7/100
  1/126 [..............................] - ETA: 0s - loss: 1.2523e-04 - mean_absolute_error: 0.0092 19/126 [===>..........................] - ETA: 0s - loss: 9.0084e-05 - mean_absolute_error: 0.0075 45/126 [=========>....................] - ETA: 0s - loss: 8.1340e-05 - mean_absolute_error: 0.0071 72/126 [================>.............] - ETA: 0s - loss: 7.5726e-05 - mean_absolute_error: 0.0068 99/126 [======================>.......] - ETA: 0s - loss: 6.9926e-05 - mean_absolute_error: 0.0065126/126 [==============================] - ETA: 0s - loss: 6.6970e-05 - mean_absolute_error: 0.0064126/126 [==============================] - 0s 2ms/step - loss: 6.6970e-05 - mean_absolute_error: 0.0064 - val_loss: 7.3518e-05 - val_mean_absolute_error: 0.0062
Epoch 8/100
  1/126 [..............................] - ETA: 0s - loss: 4.8888e-05 - mean_absolute_error: 0.0054 23/126 [====>.........................] - ETA: 0s - loss: 4.8156e-05 - mean_absolute_error: 0.0054 44/126 [=========>....................] - ETA: 0s - loss: 4.9212e-05 - mean_absolute_error: 0.0054 68/126 [===============>..............] - ETA: 0s - loss: 4.8279e-05 - mean_absolute_error: 0.0053 94/126 [=====================>........] - ETA: 0s - loss: 4.5640e-05 - mean_absolute_error: 0.0052121/126 [===========================>..] - ETA: 0s - loss: 4.4212e-05 - mean_absolute_error: 0.0050126/126 [==============================] - 0s 3ms/step - loss: 4.4122e-05 - mean_absolute_error: 0.0050 - val_loss: 7.5121e-05 - val_mean_absolute_error: 0.0062
Epoch 9/100
  1/126 [..............................] - ETA: 0s - loss: 6.7339e-05 - mean_absolute_error: 0.0061 18/126 [===>..........................] - ETA: 0s - loss: 3.6810e-05 - mean_absolute_error: 0.0045 41/126 [========>.....................] - ETA: 0s - loss: 3.6106e-05 - mean_absolute_error: 0.0045 67/126 [==============>...............] - ETA: 0s - loss: 3.5036e-05 - mean_absolute_error: 0.0044 93/126 [=====================>........] - ETA: 0s - loss: 3.6646e-05 - mean_absolute_error: 0.0044118/126 [===========================>..] - ETA: 0s - loss: 3.5754e-05 - mean_absolute_error: 0.0044126/126 [==============================] - 0s 3ms/step - loss: 3.6499e-05 - mean_absolute_error: 0.0044 - val_loss: 7.3111e-05 - val_mean_absolute_error: 0.0061
Epoch 10/100
  1/126 [..............................] - ETA: 0s - loss: 2.9760e-05 - mean_absolute_error: 0.0042 20/126 [===>..........................] - ETA: 0s - loss: 3.7304e-05 - mean_absolute_error: 0.0045 44/126 [=========>....................] - ETA: 0s - loss: 3.6673e-05 - mean_absolute_error: 0.0044 71/126 [===============>..............] - ETA: 0s - loss: 3.6424e-05 - mean_absolute_error: 0.0044 98/126 [======================>.......] - ETA: 0s - loss: 3.5378e-05 - mean_absolute_error: 0.0044124/126 [============================>.] - ETA: 0s - loss: 3.5821e-05 - mean_absolute_error: 0.0043126/126 [==============================] - 0s 2ms/step - loss: 3.5800e-05 - mean_absolute_error: 0.0043 - val_loss: 8.0403e-05 - val_mean_absolute_error: 0.0066
Epoch 11/100
  1/126 [..............................] - ETA: 0s - loss: 4.0608e-05 - mean_absolute_error: 0.0042 23/126 [====>.........................] - ETA: 0s - loss: 3.3387e-05 - mean_absolute_error: 0.0042 50/126 [==========>...................] - ETA: 0s - loss: 3.5453e-05 - mean_absolute_error: 0.0043 72/126 [================>.............] - ETA: 0s - loss: 3.4880e-05 - mean_absolute_error: 0.0043 99/126 [======================>.......] - ETA: 0s - loss: 3.5250e-05 - mean_absolute_error: 0.0043126/126 [==============================] - ETA: 0s - loss: 3.5914e-05 - mean_absolute_error: 0.0043126/126 [==============================] - 0s 2ms/step - loss: 3.5914e-05 - mean_absolute_error: 0.0043 - val_loss: 1.1360e-04 - val_mean_absolute_error: 0.0085
Epoch 12/100
  1/126 [..............................] - ETA: 0s - loss: 3.6928e-05 - mean_absolute_error: 0.0047 23/126 [====>.........................] - ETA: 0s - loss: 3.3736e-05 - mean_absolute_error: 0.0044 48/126 [==========>...................] - ETA: 0s - loss: 3.5336e-05 - mean_absolute_error: 0.0044 75/126 [================>.............] - ETA: 0s - loss: 3.4194e-05 - mean_absolute_error: 0.0043101/126 [=======================>......] - ETA: 0s - loss: 3.5852e-05 - mean_absolute_error: 0.0043126/126 [==============================] - 0s 2ms/step - loss: 3.5968e-05 - mean_absolute_error: 0.0043 - val_loss: 1.0113e-04 - val_mean_absolute_error: 0.0079
Epoch 13/100
  1/126 [..............................] - ETA: 0s - loss: 3.4341e-05 - mean_absolute_error: 0.0038 22/126 [====>.........................] - ETA: 0s - loss: 3.2261e-05 - mean_absolute_error: 0.0041 48/126 [==========>...................] - ETA: 0s - loss: 3.3271e-05 - mean_absolute_error: 0.0042 74/126 [================>.............] - ETA: 0s - loss: 3.5120e-05 - mean_absolute_error: 0.0042100/126 [======================>.......] - ETA: 0s - loss: 3.4765e-05 - mean_absolute_error: 0.0042126/126 [==============================] - ETA: 0s - loss: 3.5129e-05 - mean_absolute_error: 0.0042126/126 [==============================] - 0s 2ms/step - loss: 3.5129e-05 - mean_absolute_error: 0.0042 - val_loss: 8.9002e-05 - val_mean_absolute_error: 0.0071
Epoch 14/100
  1/126 [..............................] - ETA: 0s - loss: 3.5923e-05 - mean_absolute_error: 0.0046 22/126 [====>.........................] - ETA: 0s - loss: 3.8841e-05 - mean_absolute_error: 0.0048 48/126 [==========>...................] - ETA: 0s - loss: 3.5704e-05 - mean_absolute_error: 0.0044 74/126 [================>.............] - ETA: 0s - loss: 3.5099e-05 - mean_absolute_error: 0.0044100/126 [======================>.......] - ETA: 0s - loss: 3.8066e-05 - mean_absolute_error: 0.0046123/126 [============================>.] - ETA: 0s - loss: 3.8128e-05 - mean_absolute_error: 0.0046126/126 [==============================] - 0s 2ms/step - loss: 3.7953e-05 - mean_absolute_error: 0.0045 - val_loss: 7.7813e-05 - val_mean_absolute_error: 0.0065
Epoch 15/100
  1/126 [..............................] - ETA: 0s - loss: 4.0964e-05 - mean_absolute_error: 0.0043 25/126 [====>.........................] - ETA: 0s - loss: 4.3418e-05 - mean_absolute_error: 0.0048 51/126 [===========>..................] - ETA: 0s - loss: 4.1289e-05 - mean_absolute_error: 0.0047 76/126 [=================>............] - ETA: 0s - loss: 4.0628e-05 - mean_absolute_error: 0.0047100/126 [======================>.......] - ETA: 0s - loss: 3.8799e-05 - mean_absolute_error: 0.0046126/126 [==============================] - ETA: 0s - loss: 3.8405e-05 - mean_absolute_error: 0.0046126/126 [==============================] - 0s 2ms/step - loss: 3.8405e-05 - mean_absolute_error: 0.0046 - val_loss: 9.1806e-05 - val_mean_absolute_error: 0.0073
Epoch 16/100
  1/126 [..............................] - ETA: 0s - loss: 3.3305e-05 - mean_absolute_error: 0.0041 23/126 [====>.........................] - ETA: 0s - loss: 3.7565e-05 - mean_absolute_error: 0.0046 50/126 [==========>...................] - ETA: 0s - loss: 3.6290e-05 - mean_absolute_error: 0.0044 76/126 [=================>............] - ETA: 0s - loss: 3.5546e-05 - mean_absolute_error: 0.0044103/126 [=======================>......] - ETA: 0s - loss: 3.5019e-05 - mean_absolute_error: 0.0044126/126 [==============================] - 0s 2ms/step - loss: 3.6155e-05 - mean_absolute_error: 0.0044 - val_loss: 8.1353e-05 - val_mean_absolute_error: 0.0067
Epoch 17/100
  1/126 [..............................] - ETA: 0s - loss: 2.9057e-05 - mean_absolute_error: 0.0040 26/126 [=====>........................] - ETA: 0s - loss: 3.5372e-05 - mean_absolute_error: 0.0043 52/126 [===========>..................] - ETA: 0s - loss: 3.7340e-05 - mean_absolute_error: 0.0044 76/126 [=================>............] - ETA: 0s - loss: 3.7667e-05 - mean_absolute_error: 0.0045103/126 [=======================>......] - ETA: 0s - loss: 3.6316e-05 - mean_absolute_error: 0.0044126/126 [==============================] - 0s 2ms/step - loss: 3.8381e-05 - mean_absolute_error: 0.0046 - val_loss: 1.1399e-04 - val_mean_absolute_error: 0.0085
Epoch 18/100
  1/126 [..............................] - ETA: 0s - loss: 4.0940e-05 - mean_absolute_error: 0.0048 25/126 [====>.........................] - ETA: 0s - loss: 3.6855e-05 - mean_absolute_error: 0.0044 51/126 [===========>..................] - ETA: 0s - loss: 3.5808e-05 - mean_absolute_error: 0.0042 77/126 [=================>............] - ETA: 0s - loss: 3.6008e-05 - mean_absolute_error: 0.0043102/126 [=======================>......] - ETA: 0s - loss: 3.5826e-05 - mean_absolute_error: 0.0043126/126 [==============================] - ETA: 0s - loss: 3.6065e-05 - mean_absolute_error: 0.0044126/126 [==============================] - 0s 2ms/step - loss: 3.6065e-05 - mean_absolute_error: 0.0044 - val_loss: 1.0490e-04 - val_mean_absolute_error: 0.0081
Epoch 19/100
  1/126 [..............................] - ETA: 0s - loss: 2.5909e-05 - mean_absolute_error: 0.0039 25/126 [====>.........................] - ETA: 0s - loss: 3.9539e-05 - mean_absolute_error: 0.0048 50/126 [==========>...................] - ETA: 0s - loss: 3.7225e-05 - mean_absolute_error: 0.0045 75/126 [================>.............] - ETA: 0s - loss: 3.6796e-05 - mean_absolute_error: 0.0045100/126 [======================>.......] - ETA: 0s - loss: 3.6610e-05 - mean_absolute_error: 0.0044125/126 [============================>.] - ETA: 0s - loss: 3.8097e-05 - mean_absolute_error: 0.0046126/126 [==============================] - 0s 2ms/step - loss: 3.8090e-05 - mean_absolute_error: 0.0046 - val_loss: 9.7733e-05 - val_mean_absolute_error: 0.0077
Epoch 20/100
  1/126 [..............................] - ETA: 0s - loss: 2.0787e-05 - mean_absolute_error: 0.0030 26/126 [=====>........................] - ETA: 0s - loss: 3.4165e-05 - mean_absolute_error: 0.0043 51/126 [===========>..................] - ETA: 0s - loss: 3.7873e-05 - mean_absolute_error: 0.0046 76/126 [=================>............] - ETA: 0s - loss: 3.9338e-05 - mean_absolute_error: 0.0046101/126 [=======================>......] - ETA: 0s - loss: 3.7806e-05 - mean_absolute_error: 0.0045126/126 [==============================] - ETA: 0s - loss: 3.7590e-05 - mean_absolute_error: 0.0045126/126 [==============================] - 0s 2ms/step - loss: 3.7590e-05 - mean_absolute_error: 0.0045 - val_loss: 9.3433e-05 - val_mean_absolute_error: 0.0074
Epoch 21/100
  1/126 [..............................] - ETA: 0s - loss: 3.3883e-05 - mean_absolute_error: 0.0037 26/126 [=====>........................] - ETA: 0s - loss: 4.2317e-05 - mean_absolute_error: 0.0048 49/126 [==========>...................] - ETA: 0s - loss: 3.7050e-05 - mean_absolute_error: 0.0044 74/126 [================>.............] - ETA: 0s - loss: 3.8524e-05 - mean_absolute_error: 0.0046 97/126 [======================>.......] - ETA: 0s - loss: 3.8455e-05 - mean_absolute_error: 0.0046121/126 [===========================>..] - ETA: 0s - loss: 3.8146e-05 - mean_absolute_error: 0.0046126/126 [==============================] - 0s 2ms/step - loss: 3.8717e-05 - mean_absolute_error: 0.0046 - val_loss: 1.1061e-04 - val_mean_absolute_error: 0.0084
Epoch 22/100
  1/126 [..............................] - ETA: 0s - loss: 4.9054e-05 - mean_absolute_error: 0.0051 25/126 [====>.........................] - ETA: 0s - loss: 3.7351e-05 - mean_absolute_error: 0.0046 50/126 [==========>...................] - ETA: 0s - loss: 3.7275e-05 - mean_absolute_error: 0.0047 75/126 [================>.............] - ETA: 0s - loss: 3.8717e-05 - mean_absolute_error: 0.0047100/126 [======================>.......] - ETA: 0s - loss: 3.7898e-05 - mean_absolute_error: 0.0046125/126 [============================>.] - ETA: 0s - loss: 3.7628e-05 - mean_absolute_error: 0.0046126/126 [==============================] - 0s 2ms/step - loss: 3.7678e-05 - mean_absolute_error: 0.0046 - val_loss: 1.0629e-04 - val_mean_absolute_error: 0.0082
Epoch 23/100
  1/126 [..............................] - ETA: 0s - loss: 4.2883e-05 - mean_absolute_error: 0.0052 26/126 [=====>........................] - ETA: 0s - loss: 4.2321e-05 - mean_absolute_error: 0.0048 51/126 [===========>..................] - ETA: 0s - loss: 4.2625e-05 - mean_absolute_error: 0.0049 76/126 [=================>............] - ETA: 0s - loss: 4.1338e-05 - mean_absolute_error: 0.0048100/126 [======================>.......] - ETA: 0s - loss: 3.9304e-05 - mean_absolute_error: 0.0047125/126 [============================>.] - ETA: 0s - loss: 3.8655e-05 - mean_absolute_error: 0.0046126/126 [==============================] - 0s 2ms/step - loss: 3.8621e-05 - mean_absolute_error: 0.0046 - val_loss: 8.0428e-05 - val_mean_absolute_error: 0.0066
Epoch 24/100
  1/126 [..............................] - ETA: 0s - loss: 2.2511e-05 - mean_absolute_error: 0.0038 26/126 [=====>........................] - ETA: 0s - loss: 3.4739e-05 - mean_absolute_error: 0.0043 52/126 [===========>..................] - ETA: 0s - loss: 3.7335e-05 - mean_absolute_error: 0.0044 76/126 [=================>............] - ETA: 0s - loss: 3.7062e-05 - mean_absolute_error: 0.0044 97/126 [======================>.......] - ETA: 0s - loss: 3.6207e-05 - mean_absolute_error: 0.0044121/126 [===========================>..] - ETA: 0s - loss: 3.6383e-05 - mean_absolute_error: 0.0044126/126 [==============================] - 0s 2ms/step - loss: 3.6087e-05 - mean_absolute_error: 0.0043 - val_loss: 1.2687e-04 - val_mean_absolute_error: 0.0091
Epoch 25/100
  1/126 [..............................] - ETA: 0s - loss: 4.8384e-05 - mean_absolute_error: 0.0056 25/126 [====>.........................] - ETA: 0s - loss: 3.3213e-05 - mean_absolute_error: 0.0044 48/126 [==========>...................] - ETA: 0s - loss: 3.5083e-05 - mean_absolute_error: 0.0044 73/126 [================>.............] - ETA: 0s - loss: 3.7064e-05 - mean_absolute_error: 0.0045 97/126 [======================>.......] - ETA: 0s - loss: 3.7494e-05 - mean_absolute_error: 0.0045122/126 [============================>.] - ETA: 0s - loss: 3.6067e-05 - mean_absolute_error: 0.0044126/126 [==============================] - 0s 2ms/step - loss: 3.5780e-05 - mean_absolute_error: 0.0044 - val_loss: 1.1228e-04 - val_mean_absolute_error: 0.0084
Epoch 26/100
  1/126 [..............................] - ETA: 0s - loss: 2.5714e-05 - mean_absolute_error: 0.0037 25/126 [====>.........................] - ETA: 0s - loss: 3.3742e-05 - mean_absolute_error: 0.0042 50/126 [==========>...................] - ETA: 0s - loss: 3.5673e-05 - mean_absolute_error: 0.0043 75/126 [================>.............] - ETA: 0s - loss: 3.7260e-05 - mean_absolute_error: 0.0045100/126 [======================>.......] - ETA: 0s - loss: 3.7750e-05 - mean_absolute_error: 0.0045125/126 [============================>.] - ETA: 0s - loss: 3.9096e-05 - mean_absolute_error: 0.0047126/126 [==============================] - 0s 2ms/step - loss: 3.9088e-05 - mean_absolute_error: 0.0047 - val_loss: 7.5655e-05 - val_mean_absolute_error: 0.0063
Epoch 27/100
  1/126 [..............................] - ETA: 0s - loss: 3.5102e-05 - mean_absolute_error: 0.0047 25/126 [====>.........................] - ETA: 0s - loss: 4.2062e-05 - mean_absolute_error: 0.0048 51/126 [===========>..................] - ETA: 0s - loss: 3.8702e-05 - mean_absolute_error: 0.0046 76/126 [=================>............] - ETA: 0s - loss: 3.7280e-05 - mean_absolute_error: 0.0044100/126 [======================>.......] - ETA: 0s - loss: 3.7069e-05 - mean_absolute_error: 0.0044123/126 [============================>.] - ETA: 0s - loss: 3.7002e-05 - mean_absolute_error: 0.0044126/126 [==============================] - 0s 2ms/step - loss: 3.6963e-05 - mean_absolute_error: 0.0045 - val_loss: 7.3375e-05 - val_mean_absolute_error: 0.0060
Epoch 28/100
  1/126 [..............................] - ETA: 0s - loss: 3.6786e-05 - mean_absolute_error: 0.0050 24/126 [====>.........................] - ETA: 0s - loss: 4.4655e-05 - mean_absolute_error: 0.0051 49/126 [==========>...................] - ETA: 0s - loss: 4.5790e-05 - mean_absolute_error: 0.0053 72/126 [================>.............] - ETA: 0s - loss: 4.3952e-05 - mean_absolute_error: 0.0050 96/126 [=====================>........] - ETA: 0s - loss: 4.2499e-05 - mean_absolute_error: 0.0050119/126 [===========================>..] - ETA: 0s - loss: 4.0994e-05 - mean_absolute_error: 0.0049126/126 [==============================] - 0s 3ms/step - loss: 4.1826e-05 - mean_absolute_error: 0.0049 - val_loss: 9.7659e-05 - val_mean_absolute_error: 0.0073
Epoch 29/100
  1/126 [..............................] - ETA: 0s - loss: 6.4450e-05 - mean_absolute_error: 0.0071 21/126 [====>.........................] - ETA: 0s - loss: 3.9500e-05 - mean_absolute_error: 0.0047 38/126 [========>.....................] - ETA: 0s - loss: 4.3253e-05 - mean_absolute_error: 0.0050 54/126 [===========>..................] - ETA: 0s - loss: 4.0755e-05 - mean_absolute_error: 0.0048 75/126 [================>.............] - ETA: 0s - loss: 3.9724e-05 - mean_absolute_error: 0.0048 99/126 [======================>.......] - ETA: 0s - loss: 4.0671e-05 - mean_absolute_error: 0.0049123/126 [============================>.] - ETA: 0s - loss: 4.0231e-05 - mean_absolute_error: 0.0048126/126 [==============================] - 0s 3ms/step - loss: 4.0217e-05 - mean_absolute_error: 0.0048 - val_loss: 9.1046e-05 - val_mean_absolute_error: 0.0073
Epoch 30/100
  1/126 [..............................] - ETA: 0s - loss: 4.0450e-05 - mean_absolute_error: 0.0048 26/126 [=====>........................] - ETA: 0s - loss: 3.9412e-05 - mean_absolute_error: 0.0047 51/126 [===========>..................] - ETA: 0s - loss: 3.9587e-05 - mean_absolute_error: 0.0047 77/126 [=================>............] - ETA: 0s - loss: 3.9716e-05 - mean_absolute_error: 0.0048102/126 [=======================>......] - ETA: 0s - loss: 3.9492e-05 - mean_absolute_error: 0.0047125/126 [============================>.] - ETA: 0s - loss: 3.8847e-05 - mean_absolute_error: 0.0047126/126 [==============================] - 0s 2ms/step - loss: 3.8970e-05 - mean_absolute_error: 0.0047 - val_loss: 9.3853e-05 - val_mean_absolute_error: 0.0075
Epoch 31/100
  1/126 [..............................] - ETA: 0s - loss: 3.5558e-05 - mean_absolute_error: 0.0048 25/126 [====>.........................] - ETA: 0s - loss: 3.7771e-05 - mean_absolute_error: 0.0045 50/126 [==========>...................] - ETA: 0s - loss: 3.6540e-05 - mean_absolute_error: 0.0045 73/126 [================>.............] - ETA: 0s - loss: 4.0541e-05 - mean_absolute_error: 0.0047 98/126 [======================>.......] - ETA: 0s - loss: 4.0702e-05 - mean_absolute_error: 0.0048122/126 [============================>.] - ETA: 0s - loss: 4.0889e-05 - mean_absolute_error: 0.0048126/126 [==============================] - 0s 2ms/step - loss: 4.0908e-05 - mean_absolute_error: 0.0048 - val_loss: 7.4892e-05 - val_mean_absolute_error: 0.0061
Epoch 32/100
  1/126 [..............................] - ETA: 0s - loss: 6.7592e-05 - mean_absolute_error: 0.0067 25/126 [====>.........................] - ETA: 0s - loss: 4.2101e-05 - mean_absolute_error: 0.0050 50/126 [==========>...................] - ETA: 0s - loss: 4.2253e-05 - mean_absolute_error: 0.0050 75/126 [================>.............] - ETA: 0s - loss: 3.9541e-05 - mean_absolute_error: 0.0047100/126 [======================>.......] - ETA: 0s - loss: 3.8942e-05 - mean_absolute_error: 0.0046125/126 [============================>.] - ETA: 0s - loss: 3.8262e-05 - mean_absolute_error: 0.0045126/126 [==============================] - 0s 2ms/step - loss: 3.8187e-05 - mean_absolute_error: 0.0045 - val_loss: 1.1540e-04 - val_mean_absolute_error: 0.0086
Epoch 33/100
  1/126 [..............................] - ETA: 0s - loss: 2.8060e-05 - mean_absolute_error: 0.0039 25/126 [====>.........................] - ETA: 0s - loss: 3.5001e-05 - mean_absolute_error: 0.0043 50/126 [==========>...................] - ETA: 0s - loss: 3.7061e-05 - mean_absolute_error: 0.0043 73/126 [================>.............] - ETA: 0s - loss: 3.8171e-05 - mean_absolute_error: 0.0045 95/126 [=====================>........] - ETA: 0s - loss: 3.7905e-05 - mean_absolute_error: 0.0045109/126 [========================>.....] - ETA: 0s - loss: 3.7550e-05 - mean_absolute_error: 0.0045123/126 [============================>.] - ETA: 0s - loss: 3.6969e-05 - mean_absolute_error: 0.0044126/126 [==============================] - 0s 3ms/step - loss: 3.7147e-05 - mean_absolute_error: 0.0045 - val_loss: 1.1002e-04 - val_mean_absolute_error: 0.0084
Epoch 34/100
  1/126 [..............................] - ETA: 0s - loss: 3.5629e-05 - mean_absolute_error: 0.0044 16/126 [==>...........................] - ETA: 0s - loss: 3.3950e-05 - mean_absolute_error: 0.0044 32/126 [======>.......................] - ETA: 0s - loss: 3.5987e-05 - mean_absolute_error: 0.0043 48/126 [==========>...................] - ETA: 0s - loss: 3.6625e-05 - mean_absolute_error: 0.0044 64/126 [==============>...............] - ETA: 0s - loss: 3.6163e-05 - mean_absolute_error: 0.0044 82/126 [==================>...........] - ETA: 0s - loss: 3.7609e-05 - mean_absolute_error: 0.0045100/126 [======================>.......] - ETA: 0s - loss: 3.6615e-05 - mean_absolute_error: 0.0045120/126 [===========================>..] - ETA: 0s - loss: 3.7436e-05 - mean_absolute_error: 0.0046126/126 [==============================] - 0s 3ms/step - loss: 3.8270e-05 - mean_absolute_error: 0.0046 - val_loss: 7.1827e-05 - val_mean_absolute_error: 0.0060
Epoch 35/100
  1/126 [..............................] - ETA: 0s - loss: 4.8203e-05 - mean_absolute_error: 0.0055 21/126 [====>.........................] - ETA: 0s - loss: 4.4865e-05 - mean_absolute_error: 0.0051 41/126 [========>.....................] - ETA: 0s - loss: 4.3670e-05 - mean_absolute_error: 0.0049 64/126 [==============>...............] - ETA: 0s - loss: 4.8170e-05 - mean_absolute_error: 0.0053 88/126 [===================>..........] - ETA: 0s - loss: 4.5136e-05 - mean_absolute_error: 0.0051112/126 [=========================>....] - ETA: 0s - loss: 4.6655e-05 - mean_absolute_error: 0.0052126/126 [==============================] - 0s 3ms/step - loss: 4.8573e-05 - mean_absolute_error: 0.0054 - val_loss: 1.0042e-04 - val_mean_absolute_error: 0.0079
Epoch 36/100
  1/126 [..............................] - ETA: 0s - loss: 3.2196e-05 - mean_absolute_error: 0.0042 26/126 [=====>........................] - ETA: 0s - loss: 4.5806e-05 - mean_absolute_error: 0.0050 51/126 [===========>..................] - ETA: 0s - loss: 4.0176e-05 - mean_absolute_error: 0.0046 76/126 [=================>............] - ETA: 0s - loss: 3.7796e-05 - mean_absolute_error: 0.0045 99/126 [======================>.......] - ETA: 0s - loss: 3.8407e-05 - mean_absolute_error: 0.0045123/126 [============================>.] - ETA: 0s - loss: 3.8017e-05 - mean_absolute_error: 0.0045126/126 [==============================] - 0s 2ms/step - loss: 3.7956e-05 - mean_absolute_error: 0.0045 - val_loss: 7.5978e-05 - val_mean_absolute_error: 0.0064
Epoch 37/100
  1/126 [..............................] - ETA: 0s - loss: 1.4349e-05 - mean_absolute_error: 0.0029 26/126 [=====>........................] - ETA: 0s - loss: 5.9970e-05 - mean_absolute_error: 0.0061 49/126 [==========>...................] - ETA: 0s - loss: 5.0712e-05 - mean_absolute_error: 0.0054 73/126 [================>.............] - ETA: 0s - loss: 4.5040e-05 - mean_absolute_error: 0.0050 98/126 [======================>.......] - ETA: 0s - loss: 4.3214e-05 - mean_absolute_error: 0.0049121/126 [===========================>..] - ETA: 0s - loss: 4.1984e-05 - mean_absolute_error: 0.0049126/126 [==============================] - 0s 2ms/step - loss: 4.1924e-05 - mean_absolute_error: 0.0049 - val_loss: 1.3637e-04 - val_mean_absolute_error: 0.0096
Epoch 38/100
  1/126 [..............................] - ETA: 0s - loss: 3.6723e-05 - mean_absolute_error: 0.0050 26/126 [=====>........................] - ETA: 0s - loss: 3.7329e-05 - mean_absolute_error: 0.0044 50/126 [==========>...................] - ETA: 0s - loss: 3.6902e-05 - mean_absolute_error: 0.0043 75/126 [================>.............] - ETA: 0s - loss: 3.8225e-05 - mean_absolute_error: 0.0045100/126 [======================>.......] - ETA: 0s - loss: 3.7029e-05 - mean_absolute_error: 0.0044125/126 [============================>.] - ETA: 0s - loss: 3.6825e-05 - mean_absolute_error: 0.0044126/126 [==============================] - 0s 2ms/step - loss: 3.6905e-05 - mean_absolute_error: 0.0044 - val_loss: 1.2147e-04 - val_mean_absolute_error: 0.0089
Epoch 39/100
  1/126 [..............................] - ETA: 0s - loss: 5.6109e-05 - mean_absolute_error: 0.0061 24/126 [====>.........................] - ETA: 0s - loss: 3.4095e-05 - mean_absolute_error: 0.0042 49/126 [==========>...................] - ETA: 0s - loss: 3.5373e-05 - mean_absolute_error: 0.0044 74/126 [================>.............] - ETA: 0s - loss: 3.9079e-05 - mean_absolute_error: 0.0047 99/126 [======================>.......] - ETA: 0s - loss: 4.1076e-05 - mean_absolute_error: 0.0049124/126 [============================>.] - ETA: 0s - loss: 4.2744e-05 - mean_absolute_error: 0.0050126/126 [==============================] - 0s 2ms/step - loss: 4.3092e-05 - mean_absolute_error: 0.0050 - val_loss: 7.1205e-05 - val_mean_absolute_error: 0.0060
Epoch 40/100
  1/126 [..............................] - ETA: 0s - loss: 4.1058e-05 - mean_absolute_error: 0.0053 24/126 [====>.........................] - ETA: 0s - loss: 4.0783e-05 - mean_absolute_error: 0.0049 49/126 [==========>...................] - ETA: 0s - loss: 4.2131e-05 - mean_absolute_error: 0.0049 74/126 [================>.............] - ETA: 0s - loss: 4.0852e-05 - mean_absolute_error: 0.0048 97/126 [======================>.......] - ETA: 0s - loss: 4.0800e-05 - mean_absolute_error: 0.0048122/126 [============================>.] - ETA: 0s - loss: 3.9922e-05 - mean_absolute_error: 0.0047126/126 [==============================] - 0s 2ms/step - loss: 3.9590e-05 - mean_absolute_error: 0.0047 - val_loss: 7.9620e-05 - val_mean_absolute_error: 0.0066
Epoch 41/100
  1/126 [..............................] - ETA: 0s - loss: 2.3186e-05 - mean_absolute_error: 0.0034 24/126 [====>.........................] - ETA: 0s - loss: 4.8498e-05 - mean_absolute_error: 0.0052 49/126 [==========>...................] - ETA: 0s - loss: 4.3560e-05 - mean_absolute_error: 0.0049 74/126 [================>.............] - ETA: 0s - loss: 4.0874e-05 - mean_absolute_error: 0.0048 99/126 [======================>.......] - ETA: 0s - loss: 4.1566e-05 - mean_absolute_error: 0.0049124/126 [============================>.] - ETA: 0s - loss: 4.1492e-05 - mean_absolute_error: 0.0049126/126 [==============================] - 0s 2ms/step - loss: 4.1913e-05 - mean_absolute_error: 0.0049 - val_loss: 7.1175e-05 - val_mean_absolute_error: 0.0059
Epoch 42/100
  1/126 [..............................] - ETA: 0s - loss: 3.7354e-05 - mean_absolute_error: 0.0054 26/126 [=====>........................] - ETA: 0s - loss: 6.4751e-05 - mean_absolute_error: 0.0066 51/126 [===========>..................] - ETA: 0s - loss: 5.8257e-05 - mean_absolute_error: 0.0060 75/126 [================>.............] - ETA: 0s - loss: 5.0053e-05 - mean_absolute_error: 0.0055100/126 [======================>.......] - ETA: 0s - loss: 4.7775e-05 - mean_absolute_error: 0.0053124/126 [============================>.] - ETA: 0s - loss: 4.7819e-05 - mean_absolute_error: 0.0053126/126 [==============================] - 0s 2ms/step - loss: 4.7914e-05 - mean_absolute_error: 0.0053 - val_loss: 6.9380e-05 - val_mean_absolute_error: 0.0058
Epoch 43/100
  1/126 [..............................] - ETA: 0s - loss: 4.9781e-05 - mean_absolute_error: 0.0059 23/126 [====>.........................] - ETA: 0s - loss: 5.8127e-05 - mean_absolute_error: 0.0060 48/126 [==========>...................] - ETA: 0s - loss: 4.4084e-05 - mean_absolute_error: 0.0050 73/126 [================>.............] - ETA: 0s - loss: 4.3305e-05 - mean_absolute_error: 0.0050 98/126 [======================>.......] - ETA: 0s - loss: 4.2172e-05 - mean_absolute_error: 0.0049121/126 [===========================>..] - ETA: 0s - loss: 4.1282e-05 - mean_absolute_error: 0.0048126/126 [==============================] - 0s 2ms/step - loss: 4.0765e-05 - mean_absolute_error: 0.0048 - val_loss: 7.2005e-05 - val_mean_absolute_error: 0.0061
Epoch 44/100
  1/126 [..............................] - ETA: 0s - loss: 3.4020e-05 - mean_absolute_error: 0.0044 25/126 [====>.........................] - ETA: 0s - loss: 3.6910e-05 - mean_absolute_error: 0.0045 50/126 [==========>...................] - ETA: 0s - loss: 3.6951e-05 - mean_absolute_error: 0.0044 75/126 [================>.............] - ETA: 0s - loss: 4.1730e-05 - mean_absolute_error: 0.0048 99/126 [======================>.......] - ETA: 0s - loss: 4.5624e-05 - mean_absolute_error: 0.0051124/126 [============================>.] - ETA: 0s - loss: 4.6393e-05 - mean_absolute_error: 0.0052126/126 [==============================] - 0s 2ms/step - loss: 4.6368e-05 - mean_absolute_error: 0.0051 - val_loss: 8.9895e-05 - val_mean_absolute_error: 0.0073
Epoch 45/100
  1/126 [..............................] - ETA: 0s - loss: 2.4407e-05 - mean_absolute_error: 0.0038 26/126 [=====>........................] - ETA: 0s - loss: 4.6857e-05 - mean_absolute_error: 0.0053 52/126 [===========>..................] - ETA: 0s - loss: 5.1354e-05 - mean_absolute_error: 0.0056 77/126 [=================>............] - ETA: 0s - loss: 4.7948e-05 - mean_absolute_error: 0.0054102/126 [=======================>......] - ETA: 0s - loss: 4.8711e-05 - mean_absolute_error: 0.0054126/126 [==============================] - 0s 2ms/step - loss: 4.8014e-05 - mean_absolute_error: 0.0054 - val_loss: 6.9862e-05 - val_mean_absolute_error: 0.0060
Epoch 46/100
  1/126 [..............................] - ETA: 0s - loss: 3.2392e-05 - mean_absolute_error: 0.0042 26/126 [=====>........................] - ETA: 0s - loss: 3.4894e-05 - mean_absolute_error: 0.0043 52/126 [===========>..................] - ETA: 0s - loss: 3.4642e-05 - mean_absolute_error: 0.0044 75/126 [================>.............] - ETA: 0s - loss: 3.6142e-05 - mean_absolute_error: 0.0045 98/126 [======================>.......] - ETA: 0s - loss: 3.9664e-05 - mean_absolute_error: 0.0048122/126 [============================>.] - ETA: 0s - loss: 4.0307e-05 - mean_absolute_error: 0.0048126/126 [==============================] - 0s 2ms/step - loss: 4.0275e-05 - mean_absolute_error: 0.0048 - val_loss: 1.1128e-04 - val_mean_absolute_error: 0.0085
Epoch 47/100
  1/126 [..............................] - ETA: 0s - loss: 7.0895e-05 - mean_absolute_error: 0.0067 23/126 [====>.........................] - ETA: 0s - loss: 3.9719e-05 - mean_absolute_error: 0.0046 48/126 [==========>...................] - ETA: 0s - loss: 4.4412e-05 - mean_absolute_error: 0.0049 73/126 [================>.............] - ETA: 0s - loss: 4.8194e-05 - mean_absolute_error: 0.0053 98/126 [======================>.......] - ETA: 0s - loss: 5.0532e-05 - mean_absolute_error: 0.0055123/126 [============================>.] - ETA: 0s - loss: 5.2190e-05 - mean_absolute_error: 0.0056126/126 [==============================] - 0s 2ms/step - loss: 5.2272e-05 - mean_absolute_error: 0.0056 - val_loss: 9.3654e-05 - val_mean_absolute_error: 0.0076
Epoch 48/100
  1/126 [..............................] - ETA: 0s - loss: 3.4387e-05 - mean_absolute_error: 0.0049 26/126 [=====>........................] - ETA: 0s - loss: 4.7499e-05 - mean_absolute_error: 0.0053 51/126 [===========>..................] - ETA: 0s - loss: 4.7795e-05 - mean_absolute_error: 0.0054 76/126 [=================>............] - ETA: 0s - loss: 4.6112e-05 - mean_absolute_error: 0.0053101/126 [=======================>......] - ETA: 0s - loss: 4.4384e-05 - mean_absolute_error: 0.0052123/126 [============================>.] - ETA: 0s - loss: 4.3143e-05 - mean_absolute_error: 0.0050126/126 [==============================] - 0s 2ms/step - loss: 4.2739e-05 - mean_absolute_error: 0.0050 - val_loss: 1.0867e-04 - val_mean_absolute_error: 0.0084
Epoch 49/100
  1/126 [..............................] - ETA: 0s - loss: 3.9100e-05 - mean_absolute_error: 0.0049 24/126 [====>.........................] - ETA: 0s - loss: 3.6226e-05 - mean_absolute_error: 0.0046 47/126 [==========>...................] - ETA: 0s - loss: 4.3387e-05 - mean_absolute_error: 0.0050 68/126 [===============>..............] - ETA: 0s - loss: 4.2676e-05 - mean_absolute_error: 0.0049 90/126 [====================>.........] - ETA: 0s - loss: 4.0271e-05 - mean_absolute_error: 0.0047114/126 [==========================>...] - ETA: 0s - loss: 4.0703e-05 - mean_absolute_error: 0.0047126/126 [==============================] - 0s 3ms/step - loss: 4.0104e-05 - mean_absolute_error: 0.0047 - val_loss: 7.0914e-05 - val_mean_absolute_error: 0.0061
Epoch 50/100
  1/126 [..............................] - ETA: 0s - loss: 8.2244e-05 - mean_absolute_error: 0.0055 25/126 [====>.........................] - ETA: 0s - loss: 4.0667e-05 - mean_absolute_error: 0.0047 47/126 [==========>...................] - ETA: 0s - loss: 4.0336e-05 - mean_absolute_error: 0.0046 72/126 [================>.............] - ETA: 0s - loss: 3.9357e-05 - mean_absolute_error: 0.0047 96/126 [=====================>........] - ETA: 0s - loss: 4.2760e-05 - mean_absolute_error: 0.0049121/126 [===========================>..] - ETA: 0s - loss: 4.2831e-05 - mean_absolute_error: 0.0049126/126 [==============================] - 0s 2ms/step - loss: 4.3076e-05 - mean_absolute_error: 0.0050 - val_loss: 6.9367e-05 - val_mean_absolute_error: 0.0058
Epoch 51/100
  1/126 [..............................] - ETA: 0s - loss: 2.6118e-05 - mean_absolute_error: 0.0043 26/126 [=====>........................] - ETA: 0s - loss: 4.1945e-05 - mean_absolute_error: 0.0049 51/126 [===========>..................] - ETA: 0s - loss: 3.9652e-05 - mean_absolute_error: 0.0048 76/126 [=================>............] - ETA: 0s - loss: 3.9315e-05 - mean_absolute_error: 0.0047101/126 [=======================>......] - ETA: 0s - loss: 3.9707e-05 - mean_absolute_error: 0.0047126/126 [==============================] - ETA: 0s - loss: 3.9657e-05 - mean_absolute_error: 0.0047126/126 [==============================] - 0s 2ms/step - loss: 3.9657e-05 - mean_absolute_error: 0.0047 - val_loss: 1.4885e-04 - val_mean_absolute_error: 0.0102
Epoch 52/100
  1/126 [..............................] - ETA: 0s - loss: 3.3530e-05 - mean_absolute_error: 0.0052 26/126 [=====>........................] - ETA: 0s - loss: 5.4934e-05 - mean_absolute_error: 0.0060 52/126 [===========>..................] - ETA: 0s - loss: 5.3114e-05 - mean_absolute_error: 0.0058 76/126 [=================>............] - ETA: 0s - loss: 5.4852e-05 - mean_absolute_error: 0.0058101/126 [=======================>......] - ETA: 0s - loss: 4.9727e-05 - mean_absolute_error: 0.0054125/126 [============================>.] - ETA: 0s - loss: 4.7270e-05 - mean_absolute_error: 0.0053126/126 [==============================] - 0s 2ms/step - loss: 4.7177e-05 - mean_absolute_error: 0.0053 - val_loss: 8.7236e-05 - val_mean_absolute_error: 0.0072
Epoch 53/100
  1/126 [..............................] - ETA: 0s - loss: 3.3953e-05 - mean_absolute_error: 0.0045 24/126 [====>.........................] - ETA: 0s - loss: 4.0928e-05 - mean_absolute_error: 0.0049 49/126 [==========>...................] - ETA: 0s - loss: 3.6608e-05 - mean_absolute_error: 0.0046 73/126 [================>.............] - ETA: 0s - loss: 3.6575e-05 - mean_absolute_error: 0.0045 96/126 [=====================>........] - ETA: 0s - loss: 3.5486e-05 - mean_absolute_error: 0.0044121/126 [===========================>..] - ETA: 0s - loss: 3.6779e-05 - mean_absolute_error: 0.0045126/126 [==============================] - 0s 2ms/step - loss: 3.7005e-05 - mean_absolute_error: 0.0045 - val_loss: 7.6675e-05 - val_mean_absolute_error: 0.0065
Epoch 54/100
  1/126 [..............................] - ETA: 0s - loss: 2.9754e-05 - mean_absolute_error: 0.0037 25/126 [====>.........................] - ETA: 0s - loss: 3.4770e-05 - mean_absolute_error: 0.0042 50/126 [==========>...................] - ETA: 0s - loss: 3.6336e-05 - mean_absolute_error: 0.0044 74/126 [================>.............] - ETA: 0s - loss: 3.6826e-05 - mean_absolute_error: 0.0045 99/126 [======================>.......] - ETA: 0s - loss: 3.8245e-05 - mean_absolute_error: 0.0046124/126 [============================>.] - ETA: 0s - loss: 4.5297e-05 - mean_absolute_error: 0.0051126/126 [==============================] - 0s 2ms/step - loss: 4.5284e-05 - mean_absolute_error: 0.0051 - val_loss: 1.7779e-04 - val_mean_absolute_error: 0.0115
Epoch 55/100
  1/126 [..............................] - ETA: 0s - loss: 1.0537e-04 - mean_absolute_error: 0.0084 26/126 [=====>........................] - ETA: 0s - loss: 3.6681e-05 - mean_absolute_error: 0.0045 52/126 [===========>..................] - ETA: 0s - loss: 3.7148e-05 - mean_absolute_error: 0.0045 77/126 [=================>............] - ETA: 0s - loss: 3.7859e-05 - mean_absolute_error: 0.0045102/126 [=======================>......] - ETA: 0s - loss: 3.7245e-05 - mean_absolute_error: 0.0046126/126 [==============================] - 0s 2ms/step - loss: 3.7755e-05 - mean_absolute_error: 0.0046 - val_loss: 9.1159e-05 - val_mean_absolute_error: 0.0075
Epoch 56/100
  1/126 [..............................] - ETA: 0s - loss: 2.8917e-05 - mean_absolute_error: 0.0039 24/126 [====>.........................] - ETA: 0s - loss: 3.8380e-05 - mean_absolute_error: 0.0046 49/126 [==========>...................] - ETA: 0s - loss: 3.7110e-05 - mean_absolute_error: 0.0045 74/126 [================>.............] - ETA: 0s - loss: 3.7100e-05 - mean_absolute_error: 0.0045 99/126 [======================>.......] - ETA: 0s - loss: 3.6576e-05 - mean_absolute_error: 0.0045119/126 [===========================>..] - ETA: 0s - loss: 3.5751e-05 - mean_absolute_error: 0.0044126/126 [==============================] - 0s 3ms/step - loss: 3.5979e-05 - mean_absolute_error: 0.0044 - val_loss: 1.0811e-04 - val_mean_absolute_error: 0.0084
Epoch 57/100
  1/126 [..............................] - ETA: 0s - loss: 2.5506e-05 - mean_absolute_error: 0.0041 24/126 [====>.........................] - ETA: 0s - loss: 3.7378e-05 - mean_absolute_error: 0.0044 49/126 [==========>...................] - ETA: 0s - loss: 3.5894e-05 - mean_absolute_error: 0.0044 72/126 [================>.............] - ETA: 0s - loss: 3.6739e-05 - mean_absolute_error: 0.0045 97/126 [======================>.......] - ETA: 0s - loss: 3.7541e-05 - mean_absolute_error: 0.0046121/126 [===========================>..] - ETA: 0s - loss: 4.0396e-05 - mean_absolute_error: 0.0048126/126 [==============================] - 0s 2ms/step - loss: 4.0704e-05 - mean_absolute_error: 0.0048 - val_loss: 6.6081e-05 - val_mean_absolute_error: 0.0057
Epoch 58/100
  1/126 [..............................] - ETA: 0s - loss: 2.1547e-05 - mean_absolute_error: 0.0037 25/126 [====>.........................] - ETA: 0s - loss: 3.5807e-05 - mean_absolute_error: 0.0044 50/126 [==========>...................] - ETA: 0s - loss: 3.5615e-05 - mean_absolute_error: 0.0045 75/126 [================>.............] - ETA: 0s - loss: 3.7681e-05 - mean_absolute_error: 0.0047100/126 [======================>.......] - ETA: 0s - loss: 4.2601e-05 - mean_absolute_error: 0.0050125/126 [============================>.] - ETA: 0s - loss: 4.4772e-05 - mean_absolute_error: 0.0051126/126 [==============================] - 0s 2ms/step - loss: 4.4748e-05 - mean_absolute_error: 0.0051 - val_loss: 6.8091e-05 - val_mean_absolute_error: 0.0058
Epoch 59/100
  1/126 [..............................] - ETA: 0s - loss: 5.6583e-05 - mean_absolute_error: 0.0055 26/126 [=====>........................] - ETA: 0s - loss: 3.5215e-05 - mean_absolute_error: 0.0043 50/126 [==========>...................] - ETA: 0s - loss: 3.5074e-05 - mean_absolute_error: 0.0043 74/126 [================>.............] - ETA: 0s - loss: 3.6910e-05 - mean_absolute_error: 0.0044 98/126 [======================>.......] - ETA: 0s - loss: 3.9167e-05 - mean_absolute_error: 0.0046123/126 [============================>.] - ETA: 0s - loss: 4.0774e-05 - mean_absolute_error: 0.0048126/126 [==============================] - 0s 2ms/step - loss: 4.0441e-05 - mean_absolute_error: 0.0048 - val_loss: 7.5046e-05 - val_mean_absolute_error: 0.0062
Epoch 60/100
  1/126 [..............................] - ETA: 0s - loss: 4.0521e-05 - mean_absolute_error: 0.0055 25/126 [====>.........................] - ETA: 0s - loss: 4.0123e-05 - mean_absolute_error: 0.0048 50/126 [==========>...................] - ETA: 0s - loss: 4.1655e-05 - mean_absolute_error: 0.0049 75/126 [================>.............] - ETA: 0s - loss: 4.3824e-05 - mean_absolute_error: 0.0051100/126 [======================>.......] - ETA: 0s - loss: 4.4074e-05 - mean_absolute_error: 0.0051124/126 [============================>.] - ETA: 0s - loss: 4.2711e-05 - mean_absolute_error: 0.0050126/126 [==============================] - 0s 2ms/step - loss: 4.2775e-05 - mean_absolute_error: 0.0050 - val_loss: 6.6967e-05 - val_mean_absolute_error: 0.0057
Epoch 61/100
  1/126 [..............................] - ETA: 0s - loss: 2.3192e-05 - mean_absolute_error: 0.0041 26/126 [=====>........................] - ETA: 0s - loss: 3.5079e-05 - mean_absolute_error: 0.0044 52/126 [===========>..................] - ETA: 0s - loss: 3.7165e-05 - mean_absolute_error: 0.0045 77/126 [=================>............] - ETA: 0s - loss: 3.9295e-05 - mean_absolute_error: 0.0047102/126 [=======================>......] - ETA: 0s - loss: 3.9666e-05 - mean_absolute_error: 0.0048126/126 [==============================] - 0s 2ms/step - loss: 4.3172e-05 - mean_absolute_error: 0.0050 - val_loss: 1.1159e-04 - val_mean_absolute_error: 0.0086
Epoch 62/100
  1/126 [..............................] - ETA: 0s - loss: 5.1845e-05 - mean_absolute_error: 0.0055 26/126 [=====>........................] - ETA: 0s - loss: 4.1048e-05 - mean_absolute_error: 0.0050 51/126 [===========>..................] - ETA: 0s - loss: 4.1154e-05 - mean_absolute_error: 0.0050 75/126 [================>.............] - ETA: 0s - loss: 3.9690e-05 - mean_absolute_error: 0.0048 97/126 [======================>.......] - ETA: 0s - loss: 3.8984e-05 - mean_absolute_error: 0.0047121/126 [===========================>..] - ETA: 0s - loss: 3.8537e-05 - mean_absolute_error: 0.0047126/126 [==============================] - 0s 2ms/step - loss: 3.8349e-05 - mean_absolute_error: 0.0047 - val_loss: 6.6980e-05 - val_mean_absolute_error: 0.0057
Epoch 63/100
  1/126 [..............................] - ETA: 0s - loss: 3.3105e-05 - mean_absolute_error: 0.0045 26/126 [=====>........................] - ETA: 0s - loss: 3.8971e-05 - mean_absolute_error: 0.0048 48/126 [==========>...................] - ETA: 0s - loss: 3.7453e-05 - mean_absolute_error: 0.0047 73/126 [================>.............] - ETA: 0s - loss: 3.9423e-05 - mean_absolute_error: 0.0048 98/126 [======================>.......] - ETA: 0s - loss: 4.0700e-05 - mean_absolute_error: 0.0049122/126 [============================>.] - ETA: 0s - loss: 4.1275e-05 - mean_absolute_error: 0.0050126/126 [==============================] - 0s 2ms/step - loss: 4.1603e-05 - mean_absolute_error: 0.0050 - val_loss: 6.4667e-05 - val_mean_absolute_error: 0.0057
Epoch 64/100
  1/126 [..............................] - ETA: 0s - loss: 3.8153e-05 - mean_absolute_error: 0.0046 25/126 [====>.........................] - ETA: 0s - loss: 3.5090e-05 - mean_absolute_error: 0.0042 49/126 [==========>...................] - ETA: 0s - loss: 3.6375e-05 - mean_absolute_error: 0.0044 73/126 [================>.............] - ETA: 0s - loss: 3.5488e-05 - mean_absolute_error: 0.0044 98/126 [======================>.......] - ETA: 0s - loss: 3.5841e-05 - mean_absolute_error: 0.0044123/126 [============================>.] - ETA: 0s - loss: 3.5547e-05 - mean_absolute_error: 0.0044126/126 [==============================] - 0s 2ms/step - loss: 3.5861e-05 - mean_absolute_error: 0.0044 - val_loss: 8.4313e-05 - val_mean_absolute_error: 0.0071
Epoch 65/100
  1/126 [..............................] - ETA: 0s - loss: 3.4693e-05 - mean_absolute_error: 0.0043 26/126 [=====>........................] - ETA: 0s - loss: 4.0068e-05 - mean_absolute_error: 0.0048 51/126 [===========>..................] - ETA: 0s - loss: 3.9181e-05 - mean_absolute_error: 0.0047 76/126 [=================>............] - ETA: 0s - loss: 4.2797e-05 - mean_absolute_error: 0.0049101/126 [=======================>......] - ETA: 0s - loss: 4.2458e-05 - mean_absolute_error: 0.0049122/126 [============================>.] - ETA: 0s - loss: 4.2238e-05 - mean_absolute_error: 0.0049126/126 [==============================] - 0s 2ms/step - loss: 4.2017e-05 - mean_absolute_error: 0.0049 - val_loss: 6.5502e-05 - val_mean_absolute_error: 0.0056
Epoch 66/100
  1/126 [..............................] - ETA: 0s - loss: 4.8681e-05 - mean_absolute_error: 0.0044 24/126 [====>.........................] - ETA: 0s - loss: 5.6258e-05 - mean_absolute_error: 0.0058 48/126 [==========>...................] - ETA: 0s - loss: 5.1445e-05 - mean_absolute_error: 0.0057 71/126 [===============>..............] - ETA: 0s - loss: 5.0875e-05 - mean_absolute_error: 0.0056 95/126 [=====================>........] - ETA: 0s - loss: 4.7748e-05 - mean_absolute_error: 0.0054119/126 [===========================>..] - ETA: 0s - loss: 4.6609e-05 - mean_absolute_error: 0.0053126/126 [==============================] - 0s 2ms/step - loss: 4.6280e-05 - mean_absolute_error: 0.0053 - val_loss: 7.8991e-05 - val_mean_absolute_error: 0.0068
Epoch 67/100
  1/126 [..............................] - ETA: 0s - loss: 6.4856e-05 - mean_absolute_error: 0.0047 24/126 [====>.........................] - ETA: 0s - loss: 3.8722e-05 - mean_absolute_error: 0.0046 48/126 [==========>...................] - ETA: 0s - loss: 3.6493e-05 - mean_absolute_error: 0.0044 72/126 [================>.............] - ETA: 0s - loss: 3.6054e-05 - mean_absolute_error: 0.0044 97/126 [======================>.......] - ETA: 0s - loss: 3.7838e-05 - mean_absolute_error: 0.0046122/126 [============================>.] - ETA: 0s - loss: 3.8923e-05 - mean_absolute_error: 0.0047126/126 [==============================] - 0s 2ms/step - loss: 3.9021e-05 - mean_absolute_error: 0.0047 - val_loss: 8.5697e-05 - val_mean_absolute_error: 0.0072
Epoch 68/100
  1/126 [..............................] - ETA: 0s - loss: 2.2135e-05 - mean_absolute_error: 0.0038 26/126 [=====>........................] - ETA: 0s - loss: 4.6513e-05 - mean_absolute_error: 0.0053 51/126 [===========>..................] - ETA: 0s - loss: 4.5281e-05 - mean_absolute_error: 0.0051 76/126 [=================>............] - ETA: 0s - loss: 4.4505e-05 - mean_absolute_error: 0.0051101/126 [=======================>......] - ETA: 0s - loss: 4.1768e-05 - mean_absolute_error: 0.0049126/126 [==============================] - ETA: 0s - loss: 4.1227e-05 - mean_absolute_error: 0.0049126/126 [==============================] - 0s 2ms/step - loss: 4.1227e-05 - mean_absolute_error: 0.0049 - val_loss: 6.4623e-05 - val_mean_absolute_error: 0.0056
Epoch 69/100
  1/126 [..............................] - ETA: 0s - loss: 7.2633e-05 - mean_absolute_error: 0.0050 23/126 [====>.........................] - ETA: 0s - loss: 3.1484e-05 - mean_absolute_error: 0.0039 47/126 [==========>...................] - ETA: 0s - loss: 3.3776e-05 - mean_absolute_error: 0.0042 72/126 [================>.............] - ETA: 0s - loss: 3.4099e-05 - mean_absolute_error: 0.0043 96/126 [=====================>........] - ETA: 0s - loss: 3.4352e-05 - mean_absolute_error: 0.0043119/126 [===========================>..] - ETA: 0s - loss: 3.8076e-05 - mean_absolute_error: 0.0046126/126 [==============================] - 0s 2ms/step - loss: 3.9399e-05 - mean_absolute_error: 0.0047 - val_loss: 6.6113e-05 - val_mean_absolute_error: 0.0059
Epoch 70/100
  1/126 [..............................] - ETA: 0s - loss: 4.4629e-05 - mean_absolute_error: 0.0049 26/126 [=====>........................] - ETA: 0s - loss: 5.3000e-05 - mean_absolute_error: 0.0056 52/126 [===========>..................] - ETA: 0s - loss: 4.8745e-05 - mean_absolute_error: 0.0054 77/126 [=================>............] - ETA: 0s - loss: 4.4103e-05 - mean_absolute_error: 0.0051102/126 [=======================>......] - ETA: 0s - loss: 4.0590e-05 - mean_absolute_error: 0.0048126/126 [==============================] - 0s 2ms/step - loss: 3.9893e-05 - mean_absolute_error: 0.0047 - val_loss: 6.3907e-05 - val_mean_absolute_error: 0.0056
Epoch 71/100
  1/126 [..............................] - ETA: 0s - loss: 2.9126e-05 - mean_absolute_error: 0.0042 26/126 [=====>........................] - ETA: 0s - loss: 3.7429e-05 - mean_absolute_error: 0.0046 50/126 [==========>...................] - ETA: 0s - loss: 3.8223e-05 - mean_absolute_error: 0.0047 75/126 [================>.............] - ETA: 0s - loss: 3.5912e-05 - mean_absolute_error: 0.0046100/126 [======================>.......] - ETA: 0s - loss: 3.7541e-05 - mean_absolute_error: 0.0046125/126 [============================>.] - ETA: 0s - loss: 3.7448e-05 - mean_absolute_error: 0.0046126/126 [==============================] - 0s 2ms/step - loss: 3.7355e-05 - mean_absolute_error: 0.0046 - val_loss: 7.9624e-05 - val_mean_absolute_error: 0.0069
Epoch 72/100
  1/126 [..............................] - ETA: 0s - loss: 2.4574e-05 - mean_absolute_error: 0.0036 26/126 [=====>........................] - ETA: 0s - loss: 4.5789e-05 - mean_absolute_error: 0.0054 46/126 [=========>....................] - ETA: 0s - loss: 5.0152e-05 - mean_absolute_error: 0.0056 66/126 [==============>...............] - ETA: 0s - loss: 4.6388e-05 - mean_absolute_error: 0.0053 84/126 [===================>..........] - ETA: 0s - loss: 4.3478e-05 - mean_absolute_error: 0.0050105/126 [========================>.....] - ETA: 0s - loss: 4.1261e-05 - mean_absolute_error: 0.0049123/126 [============================>.] - ETA: 0s - loss: 4.0098e-05 - mean_absolute_error: 0.0048126/126 [==============================] - 0s 3ms/step - loss: 3.9851e-05 - mean_absolute_error: 0.0047 - val_loss: 6.6615e-05 - val_mean_absolute_error: 0.0059
Epoch 73/100
  1/126 [..............................] - ETA: 0s - loss: 5.9460e-05 - mean_absolute_error: 0.0053 20/126 [===>..........................] - ETA: 0s - loss: 3.4045e-05 - mean_absolute_error: 0.0042 39/126 [========>.....................] - ETA: 0s - loss: 3.6192e-05 - mean_absolute_error: 0.0043 62/126 [=============>................] - ETA: 0s - loss: 3.6475e-05 - mean_absolute_error: 0.0044 86/126 [===================>..........] - ETA: 0s - loss: 3.5239e-05 - mean_absolute_error: 0.0044110/126 [=========================>....] - ETA: 0s - loss: 3.5934e-05 - mean_absolute_error: 0.0044126/126 [==============================] - 0s 3ms/step - loss: 3.5391e-05 - mean_absolute_error: 0.0044 - val_loss: 6.3081e-05 - val_mean_absolute_error: 0.0056
Epoch 74/100
  1/126 [..............................] - ETA: 0s - loss: 2.2889e-05 - mean_absolute_error: 0.0034 26/126 [=====>........................] - ETA: 0s - loss: 3.6923e-05 - mean_absolute_error: 0.0043 52/126 [===========>..................] - ETA: 0s - loss: 3.9099e-05 - mean_absolute_error: 0.0045 77/126 [=================>............] - ETA: 0s - loss: 3.9747e-05 - mean_absolute_error: 0.0047103/126 [=======================>......] - ETA: 0s - loss: 3.8645e-05 - mean_absolute_error: 0.0046126/126 [==============================] - 0s 2ms/step - loss: 3.6852e-05 - mean_absolute_error: 0.0045 - val_loss: 6.7094e-05 - val_mean_absolute_error: 0.0060
Epoch 75/100
  1/126 [..............................] - ETA: 0s - loss: 1.9732e-05 - mean_absolute_error: 0.0031 26/126 [=====>........................] - ETA: 0s - loss: 3.9307e-05 - mean_absolute_error: 0.0047 49/126 [==========>...................] - ETA: 0s - loss: 3.8797e-05 - mean_absolute_error: 0.0047 74/126 [================>.............] - ETA: 0s - loss: 3.8701e-05 - mean_absolute_error: 0.0047 98/126 [======================>.......] - ETA: 0s - loss: 4.0123e-05 - mean_absolute_error: 0.0048123/126 [============================>.] - ETA: 0s - loss: 3.8349e-05 - mean_absolute_error: 0.0046126/126 [==============================] - 0s 2ms/step - loss: 3.8222e-05 - mean_absolute_error: 0.0046 - val_loss: 6.2711e-05 - val_mean_absolute_error: 0.0055
Epoch 76/100
  1/126 [..............................] - ETA: 0s - loss: 4.5735e-05 - mean_absolute_error: 0.0054 26/126 [=====>........................] - ETA: 0s - loss: 3.4339e-05 - mean_absolute_error: 0.0046 50/126 [==========>...................] - ETA: 0s - loss: 3.6743e-05 - mean_absolute_error: 0.0046 75/126 [================>.............] - ETA: 0s - loss: 3.7314e-05 - mean_absolute_error: 0.0046100/126 [======================>.......] - ETA: 0s - loss: 3.6832e-05 - mean_absolute_error: 0.0046125/126 [============================>.] - ETA: 0s - loss: 3.8645e-05 - mean_absolute_error: 0.0047126/126 [==============================] - 0s 2ms/step - loss: 3.8623e-05 - mean_absolute_error: 0.0047 - val_loss: 8.1345e-05 - val_mean_absolute_error: 0.0068
Epoch 77/100
  1/126 [..............................] - ETA: 0s - loss: 6.5335e-05 - mean_absolute_error: 0.0065 26/126 [=====>........................] - ETA: 0s - loss: 3.9170e-05 - mean_absolute_error: 0.0048 51/126 [===========>..................] - ETA: 0s - loss: 3.4696e-05 - mean_absolute_error: 0.0043 75/126 [================>.............] - ETA: 0s - loss: 3.4278e-05 - mean_absolute_error: 0.0043100/126 [======================>.......] - ETA: 0s - loss: 3.6120e-05 - mean_absolute_error: 0.0044125/126 [============================>.] - ETA: 0s - loss: 3.6198e-05 - mean_absolute_error: 0.0044126/126 [==============================] - 0s 2ms/step - loss: 3.6147e-05 - mean_absolute_error: 0.0044 - val_loss: 8.2674e-05 - val_mean_absolute_error: 0.0071
Epoch 78/100
  1/126 [..............................] - ETA: 0s - loss: 4.5221e-05 - mean_absolute_error: 0.0058 26/126 [=====>........................] - ETA: 0s - loss: 3.6702e-05 - mean_absolute_error: 0.0046 51/126 [===========>..................] - ETA: 0s - loss: 4.1459e-05 - mean_absolute_error: 0.0050 76/126 [=================>............] - ETA: 0s - loss: 4.0449e-05 - mean_absolute_error: 0.0049 99/126 [======================>.......] - ETA: 0s - loss: 4.1458e-05 - mean_absolute_error: 0.0050122/126 [============================>.] - ETA: 0s - loss: 4.2281e-05 - mean_absolute_error: 0.0050126/126 [==============================] - 0s 2ms/step - loss: 4.2001e-05 - mean_absolute_error: 0.0050 - val_loss: 7.6705e-05 - val_mean_absolute_error: 0.0068
Epoch 79/100
  1/126 [..............................] - ETA: 0s - loss: 3.7841e-05 - mean_absolute_error: 0.0047 25/126 [====>.........................] - ETA: 0s - loss: 3.5733e-05 - mean_absolute_error: 0.0045 48/126 [==========>...................] - ETA: 0s - loss: 3.5960e-05 - mean_absolute_error: 0.0044 72/126 [================>.............] - ETA: 0s - loss: 3.5283e-05 - mean_absolute_error: 0.0044 97/126 [======================>.......] - ETA: 0s - loss: 3.6213e-05 - mean_absolute_error: 0.0045122/126 [============================>.] - ETA: 0s - loss: 3.7996e-05 - mean_absolute_error: 0.0047126/126 [==============================] - 0s 2ms/step - loss: 3.8074e-05 - mean_absolute_error: 0.0047 - val_loss: 1.0003e-04 - val_mean_absolute_error: 0.0078
Epoch 80/100
  1/126 [..............................] - ETA: 0s - loss: 6.6030e-05 - mean_absolute_error: 0.0072 25/126 [====>.........................] - ETA: 0s - loss: 3.9438e-05 - mean_absolute_error: 0.0049 51/126 [===========>..................] - ETA: 0s - loss: 3.5845e-05 - mean_absolute_error: 0.0046 76/126 [=================>............] - ETA: 0s - loss: 3.5230e-05 - mean_absolute_error: 0.0045100/126 [======================>.......] - ETA: 0s - loss: 3.8768e-05 - mean_absolute_error: 0.0047125/126 [============================>.] - ETA: 0s - loss: 3.9851e-05 - mean_absolute_error: 0.0048126/126 [==============================] - 0s 2ms/step - loss: 3.9941e-05 - mean_absolute_error: 0.0048 - val_loss: 8.6707e-05 - val_mean_absolute_error: 0.0074
Epoch 81/100
  1/126 [..............................] - ETA: 0s - loss: 5.0841e-05 - mean_absolute_error: 0.0055 26/126 [=====>........................] - ETA: 0s - loss: 3.8258e-05 - mean_absolute_error: 0.0047 51/126 [===========>..................] - ETA: 0s - loss: 4.4281e-05 - mean_absolute_error: 0.0051 76/126 [=================>............] - ETA: 0s - loss: 4.0539e-05 - mean_absolute_error: 0.0049101/126 [=======================>......] - ETA: 0s - loss: 4.0277e-05 - mean_absolute_error: 0.0049124/126 [============================>.] - ETA: 0s - loss: 3.8701e-05 - mean_absolute_error: 0.0048126/126 [==============================] - 0s 2ms/step - loss: 3.9069e-05 - mean_absolute_error: 0.0048 - val_loss: 6.0605e-05 - val_mean_absolute_error: 0.0054
Epoch 82/100
  1/126 [..............................] - ETA: 0s - loss: 3.7908e-05 - mean_absolute_error: 0.0050 25/126 [====>.........................] - ETA: 0s - loss: 3.1590e-05 - mean_absolute_error: 0.0041 50/126 [==========>...................] - ETA: 0s - loss: 3.4328e-05 - mean_absolute_error: 0.0043 73/126 [================>.............] - ETA: 0s - loss: 3.5482e-05 - mean_absolute_error: 0.0043 98/126 [======================>.......] - ETA: 0s - loss: 3.5089e-05 - mean_absolute_error: 0.0043123/126 [============================>.] - ETA: 0s - loss: 3.4424e-05 - mean_absolute_error: 0.0043126/126 [==============================] - 0s 2ms/step - loss: 3.5137e-05 - mean_absolute_error: 0.0044 - val_loss: 7.8416e-05 - val_mean_absolute_error: 0.0066
Epoch 83/100
  1/126 [..............................] - ETA: 0s - loss: 5.3064e-05 - mean_absolute_error: 0.0060 25/126 [====>.........................] - ETA: 0s - loss: 4.2522e-05 - mean_absolute_error: 0.0049 41/126 [========>.....................] - ETA: 0s - loss: 4.1741e-05 - mean_absolute_error: 0.0050 52/126 [===========>..................] - ETA: 0s - loss: 4.2711e-05 - mean_absolute_error: 0.0051 63/126 [==============>...............] - ETA: 0s - loss: 4.1331e-05 - mean_absolute_error: 0.0050 72/126 [================>.............] - ETA: 0s - loss: 4.0147e-05 - mean_absolute_error: 0.0049 81/126 [==================>...........] - ETA: 0s - loss: 3.9483e-05 - mean_absolute_error: 0.0048 93/126 [=====================>........] - ETA: 0s - loss: 3.8287e-05 - mean_absolute_error: 0.0048105/126 [========================>.....] - ETA: 0s - loss: 3.8292e-05 - mean_absolute_error: 0.0047116/126 [==========================>...] - ETA: 0s - loss: 3.8217e-05 - mean_absolute_error: 0.0047126/126 [==============================] - 1s 5ms/step - loss: 3.7624e-05 - mean_absolute_error: 0.0046 - val_loss: 6.8370e-05 - val_mean_absolute_error: 0.0060
Epoch 84/100
  1/126 [..............................] - ETA: 0s - loss: 2.2438e-05 - mean_absolute_error: 0.0038 12/126 [=>............................] - ETA: 0s - loss: 3.9623e-05 - mean_absolute_error: 0.0046 23/126 [====>.........................] - ETA: 0s - loss: 3.7617e-05 - mean_absolute_error: 0.0044 35/126 [=======>......................] - ETA: 0s - loss: 3.7181e-05 - mean_absolute_error: 0.0044 47/126 [==========>...................] - ETA: 0s - loss: 3.5779e-05 - mean_absolute_error: 0.0043 58/126 [============>.................] - ETA: 0s - loss: 3.5484e-05 - mean_absolute_error: 0.0044 70/126 [===============>..............] - ETA: 0s - loss: 3.6123e-05 - mean_absolute_error: 0.0044 83/126 [==================>...........] - ETA: 0s - loss: 3.6574e-05 - mean_absolute_error: 0.0045 96/126 [=====================>........] - ETA: 0s - loss: 3.5611e-05 - mean_absolute_error: 0.0044108/126 [========================>.....] - ETA: 0s - loss: 3.4647e-05 - mean_absolute_error: 0.0043120/126 [===========================>..] - ETA: 0s - loss: 3.4424e-05 - mean_absolute_error: 0.0043126/126 [==============================] - 1s 5ms/step - loss: 3.3953e-05 - mean_absolute_error: 0.0042 - val_loss: 6.0927e-05 - val_mean_absolute_error: 0.0054
Epoch 85/100
  1/126 [..............................] - ETA: 0s - loss: 1.4740e-05 - mean_absolute_error: 0.0033 13/126 [==>...........................] - ETA: 0s - loss: 3.8992e-05 - mean_absolute_error: 0.0045 27/126 [=====>........................] - ETA: 0s - loss: 4.3985e-05 - mean_absolute_error: 0.0050 42/126 [=========>....................] - ETA: 0s - loss: 4.3850e-05 - mean_absolute_error: 0.0051 62/126 [=============>................] - ETA: 0s - loss: 4.1393e-05 - mean_absolute_error: 0.0048 83/126 [==================>...........] - ETA: 0s - loss: 3.7810e-05 - mean_absolute_error: 0.0046104/126 [=======================>......] - ETA: 0s - loss: 3.8269e-05 - mean_absolute_error: 0.0046126/126 [==============================] - ETA: 0s - loss: 3.6453e-05 - mean_absolute_error: 0.0045126/126 [==============================] - 0s 3ms/step - loss: 3.6453e-05 - mean_absolute_error: 0.0045 - val_loss: 8.7845e-05 - val_mean_absolute_error: 0.0075
Epoch 86/100
  1/126 [..............................] - ETA: 0s - loss: 3.5217e-05 - mean_absolute_error: 0.0050 22/126 [====>.........................] - ETA: 0s - loss: 3.1446e-05 - mean_absolute_error: 0.0039 40/126 [========>.....................] - ETA: 0s - loss: 3.4050e-05 - mean_absolute_error: 0.0043 59/126 [=============>................] - ETA: 0s - loss: 3.6315e-05 - mean_absolute_error: 0.0045 76/126 [=================>............] - ETA: 0s - loss: 3.8334e-05 - mean_absolute_error: 0.0047 93/126 [=====================>........] - ETA: 0s - loss: 3.7974e-05 - mean_absolute_error: 0.0046112/126 [=========================>....] - ETA: 0s - loss: 3.6861e-05 - mean_absolute_error: 0.0045126/126 [==============================] - 0s 3ms/step - loss: 3.6724e-05 - mean_absolute_error: 0.0045 - val_loss: 6.6157e-05 - val_mean_absolute_error: 0.0061
Epoch 87/100
  1/126 [..............................] - ETA: 0s - loss: 4.2821e-05 - mean_absolute_error: 0.0051 20/126 [===>..........................] - ETA: 0s - loss: 4.4215e-05 - mean_absolute_error: 0.0052 39/126 [========>.....................] - ETA: 0s - loss: 4.3278e-05 - mean_absolute_error: 0.0051 58/126 [============>.................] - ETA: 0s - loss: 4.3253e-05 - mean_absolute_error: 0.0051 76/126 [=================>............] - ETA: 0s - loss: 4.3293e-05 - mean_absolute_error: 0.0052 94/126 [=====================>........] - ETA: 0s - loss: 4.3026e-05 - mean_absolute_error: 0.0051116/126 [==========================>...] - ETA: 0s - loss: 4.2537e-05 - mean_absolute_error: 0.0051126/126 [==============================] - 0s 3ms/step - loss: 4.2422e-05 - mean_absolute_error: 0.0051 - val_loss: 5.8220e-05 - val_mean_absolute_error: 0.0053
Epoch 88/100
  1/126 [..............................] - ETA: 0s - loss: 2.3790e-05 - mean_absolute_error: 0.0035 26/126 [=====>........................] - ETA: 0s - loss: 3.0581e-05 - mean_absolute_error: 0.0041 51/126 [===========>..................] - ETA: 0s - loss: 3.5320e-05 - mean_absolute_error: 0.0044 76/126 [=================>............] - ETA: 0s - loss: 3.6411e-05 - mean_absolute_error: 0.0045100/126 [======================>.......] - ETA: 0s - loss: 3.5378e-05 - mean_absolute_error: 0.0044121/126 [===========================>..] - ETA: 0s - loss: 3.5008e-05 - mean_absolute_error: 0.0044126/126 [==============================] - 0s 2ms/step - loss: 3.5367e-05 - mean_absolute_error: 0.0044 - val_loss: 1.2600e-04 - val_mean_absolute_error: 0.0095
Epoch 89/100
  1/126 [..............................] - ETA: 0s - loss: 6.7665e-05 - mean_absolute_error: 0.0072 25/126 [====>.........................] - ETA: 0s - loss: 4.8732e-05 - mean_absolute_error: 0.0055 48/126 [==========>...................] - ETA: 0s - loss: 4.1423e-05 - mean_absolute_error: 0.0049 71/126 [===============>..............] - ETA: 0s - loss: 3.8721e-05 - mean_absolute_error: 0.0047 95/126 [=====================>........] - ETA: 0s - loss: 3.9799e-05 - mean_absolute_error: 0.0048120/126 [===========================>..] - ETA: 0s - loss: 3.8875e-05 - mean_absolute_error: 0.0047126/126 [==============================] - 0s 2ms/step - loss: 3.8857e-05 - mean_absolute_error: 0.0047 - val_loss: 5.7145e-05 - val_mean_absolute_error: 0.0052
Epoch 90/100
  1/126 [..............................] - ETA: 0s - loss: 1.8387e-05 - mean_absolute_error: 0.0027 25/126 [====>.........................] - ETA: 0s - loss: 3.2275e-05 - mean_absolute_error: 0.0041 50/126 [==========>...................] - ETA: 0s - loss: 3.2773e-05 - mean_absolute_error: 0.0042 75/126 [================>.............] - ETA: 0s - loss: 3.4885e-05 - mean_absolute_error: 0.0044 98/126 [======================>.......] - ETA: 0s - loss: 3.3641e-05 - mean_absolute_error: 0.0043123/126 [============================>.] - ETA: 0s - loss: 3.4893e-05 - mean_absolute_error: 0.0044126/126 [==============================] - 0s 2ms/step - loss: 3.4722e-05 - mean_absolute_error: 0.0044 - val_loss: 6.3091e-05 - val_mean_absolute_error: 0.0057
Epoch 91/100
  1/126 [..............................] - ETA: 0s - loss: 2.5921e-05 - mean_absolute_error: 0.0039 26/126 [=====>........................] - ETA: 0s - loss: 3.9799e-05 - mean_absolute_error: 0.0048 51/126 [===========>..................] - ETA: 0s - loss: 3.4451e-05 - mean_absolute_error: 0.0043 75/126 [================>.............] - ETA: 0s - loss: 3.6470e-05 - mean_absolute_error: 0.0044 96/126 [=====================>........] - ETA: 0s - loss: 3.5745e-05 - mean_absolute_error: 0.0044117/126 [==========================>...] - ETA: 0s - loss: 3.4630e-05 - mean_absolute_error: 0.0043126/126 [==============================] - 0s 3ms/step - loss: 3.4845e-05 - mean_absolute_error: 0.0043 - val_loss: 1.1928e-04 - val_mean_absolute_error: 0.0092
Epoch 92/100
  1/126 [..............................] - ETA: 0s - loss: 3.5978e-05 - mean_absolute_error: 0.0054 25/126 [====>.........................] - ETA: 0s - loss: 3.7990e-05 - mean_absolute_error: 0.0047 48/126 [==========>...................] - ETA: 0s - loss: 4.1462e-05 - mean_absolute_error: 0.0050 73/126 [================>.............] - ETA: 0s - loss: 4.2998e-05 - mean_absolute_error: 0.0050 98/126 [======================>.......] - ETA: 0s - loss: 3.9934e-05 - mean_absolute_error: 0.0048123/126 [============================>.] - ETA: 0s - loss: 3.9221e-05 - mean_absolute_error: 0.0047126/126 [==============================] - 0s 2ms/step - loss: 3.9244e-05 - mean_absolute_error: 0.0047 - val_loss: 1.5286e-04 - val_mean_absolute_error: 0.0107
Epoch 93/100
  1/126 [..............................] - ETA: 0s - loss: 8.7121e-05 - mean_absolute_error: 0.0080 26/126 [=====>........................] - ETA: 0s - loss: 4.8161e-05 - mean_absolute_error: 0.0053 51/126 [===========>..................] - ETA: 0s - loss: 4.1052e-05 - mean_absolute_error: 0.0048 76/126 [=================>............] - ETA: 0s - loss: 3.8882e-05 - mean_absolute_error: 0.0047101/126 [=======================>......] - ETA: 0s - loss: 3.7895e-05 - mean_absolute_error: 0.0046125/126 [============================>.] - ETA: 0s - loss: 4.0322e-05 - mean_absolute_error: 0.0048126/126 [==============================] - 0s 2ms/step - loss: 4.0408e-05 - mean_absolute_error: 0.0048 - val_loss: 6.3216e-05 - val_mean_absolute_error: 0.0059
Epoch 94/100
  1/126 [..............................] - ETA: 0s - loss: 2.0379e-05 - mean_absolute_error: 0.0033 26/126 [=====>........................] - ETA: 0s - loss: 3.4371e-05 - mean_absolute_error: 0.0043 51/126 [===========>..................] - ETA: 0s - loss: 4.2338e-05 - mean_absolute_error: 0.0050 76/126 [=================>............] - ETA: 0s - loss: 4.1676e-05 - mean_absolute_error: 0.0050100/126 [======================>.......] - ETA: 0s - loss: 3.9198e-05 - mean_absolute_error: 0.0048122/126 [============================>.] - ETA: 0s - loss: 3.7991e-05 - mean_absolute_error: 0.0046126/126 [==============================] - 0s 2ms/step - loss: 3.7833e-05 - mean_absolute_error: 0.0046 - val_loss: 5.9302e-05 - val_mean_absolute_error: 0.0056
Epoch 95/100
  1/126 [..............................] - ETA: 0s - loss: 3.2136e-05 - mean_absolute_error: 0.0046 18/126 [===>..........................] - ETA: 0s - loss: 3.6845e-05 - mean_absolute_error: 0.0046 37/126 [=======>......................] - ETA: 0s - loss: 3.3573e-05 - mean_absolute_error: 0.0043 58/126 [============>.................] - ETA: 0s - loss: 3.1896e-05 - mean_absolute_error: 0.0042 80/126 [==================>...........] - ETA: 0s - loss: 3.2832e-05 - mean_absolute_error: 0.0042101/126 [=======================>......] - ETA: 0s - loss: 3.6171e-05 - mean_absolute_error: 0.0044122/126 [============================>.] - ETA: 0s - loss: 3.7673e-05 - mean_absolute_error: 0.0046126/126 [==============================] - 0s 3ms/step - loss: 3.7812e-05 - mean_absolute_error: 0.0046 - val_loss: 5.8075e-05 - val_mean_absolute_error: 0.0055
Epoch 96/100
  1/126 [..............................] - ETA: 0s - loss: 2.7426e-05 - mean_absolute_error: 0.0040 23/126 [====>.........................] - ETA: 0s - loss: 3.8920e-05 - mean_absolute_error: 0.0046 45/126 [=========>....................] - ETA: 0s - loss: 3.8617e-05 - mean_absolute_error: 0.0047 65/126 [==============>...............] - ETA: 0s - loss: 4.0336e-05 - mean_absolute_error: 0.0049 87/126 [===================>..........] - ETA: 0s - loss: 4.1144e-05 - mean_absolute_error: 0.0049110/126 [=========================>....] - ETA: 0s - loss: 4.1144e-05 - mean_absolute_error: 0.0049126/126 [==============================] - 0s 3ms/step - loss: 4.0445e-05 - mean_absolute_error: 0.0049 - val_loss: 6.6247e-05 - val_mean_absolute_error: 0.0062
Epoch 97/100
  1/126 [..............................] - ETA: 0s - loss: 2.0844e-05 - mean_absolute_error: 0.0037 22/126 [====>.........................] - ETA: 0s - loss: 2.9010e-05 - mean_absolute_error: 0.0040 44/126 [=========>....................] - ETA: 0s - loss: 3.6998e-05 - mean_absolute_error: 0.0046 68/126 [===============>..............] - ETA: 0s - loss: 3.8570e-05 - mean_absolute_error: 0.0048 91/126 [====================>.........] - ETA: 0s - loss: 3.5607e-05 - mean_absolute_error: 0.0045114/126 [==========================>...] - ETA: 0s - loss: 3.7874e-05 - mean_absolute_error: 0.0047126/126 [==============================] - 0s 3ms/step - loss: 3.8436e-05 - mean_absolute_error: 0.0047 - val_loss: 8.2850e-05 - val_mean_absolute_error: 0.0069
Epoch 98/100
  1/126 [..............................] - ETA: 0s - loss: 3.1607e-05 - mean_absolute_error: 0.0048 21/126 [====>.........................] - ETA: 0s - loss: 3.8117e-05 - mean_absolute_error: 0.0047 42/126 [=========>....................] - ETA: 0s - loss: 3.5245e-05 - mean_absolute_error: 0.0044 60/126 [=============>................] - ETA: 0s - loss: 3.4631e-05 - mean_absolute_error: 0.0043 79/126 [=================>............] - ETA: 0s - loss: 3.7672e-05 - mean_absolute_error: 0.0046100/126 [======================>.......] - ETA: 0s - loss: 3.8588e-05 - mean_absolute_error: 0.0047122/126 [============================>.] - ETA: 0s - loss: 3.8203e-05 - mean_absolute_error: 0.0046126/126 [==============================] - 0s 3ms/step - loss: 3.7923e-05 - mean_absolute_error: 0.0046 - val_loss: 5.4459e-05 - val_mean_absolute_error: 0.0049
Epoch 99/100
  1/126 [..............................] - ETA: 0s - loss: 4.4860e-05 - mean_absolute_error: 0.0047 24/126 [====>.........................] - ETA: 0s - loss: 3.9028e-05 - mean_absolute_error: 0.0048 49/126 [==========>...................] - ETA: 0s - loss: 3.5541e-05 - mean_absolute_error: 0.0045 73/126 [================>.............] - ETA: 0s - loss: 3.5994e-05 - mean_absolute_error: 0.0045 98/126 [======================>.......] - ETA: 0s - loss: 3.4496e-05 - mean_absolute_error: 0.0044123/126 [============================>.] - ETA: 0s - loss: 3.5716e-05 - mean_absolute_error: 0.0045126/126 [==============================] - 0s 2ms/step - loss: 3.6080e-05 - mean_absolute_error: 0.0045 - val_loss: 1.0130e-04 - val_mean_absolute_error: 0.0080
Epoch 100/100
  1/126 [..............................] - ETA: 0s - loss: 6.8554e-05 - mean_absolute_error: 0.0070 26/126 [=====>........................] - ETA: 0s - loss: 4.2532e-05 - mean_absolute_error: 0.0050 51/126 [===========>..................] - ETA: 0s - loss: 3.6756e-05 - mean_absolute_error: 0.0044 75/126 [================>.............] - ETA: 0s - loss: 3.5629e-05 - mean_absolute_error: 0.0044100/126 [======================>.......] - ETA: 0s - loss: 3.5046e-05 - mean_absolute_error: 0.0044122/126 [============================>.] - ETA: 0s - loss: 3.6698e-05 - mean_absolute_error: 0.0045126/126 [==============================] - 0s 2ms/step - loss: 3.6435e-05 - mean_absolute_error: 0.0045 - val_loss: 5.4927e-05 - val_mean_absolute_error: 0.0050
<keras.src.callbacks.History at 0x2115ad49a50>

After the training and fitting of the Machine Learning model for the United Kingdom, I tried to create visualizations comparing the model against the country’s training dataset, validation dataset, but most importantly the testing dataset (as shown below in the line graphs). Note that the darker and thicker blue lines represent the prediction model’s projections and the thinner red lines is the observed/gathered data.

```{python}
# Testing the Machine Learning Model prediction for United Kingdom with the train, 
# validation, and test sets
# Most important is the test set prediction as this tests the effectiveness
# of the Machine Learning model on data it has not seen before 
united_kingdom_train_pred = united_kingdom_model.predict(X_united_kingdom_train).flatten()

plt.plot(dates_united_kingdom_train, united_kingdom_train_pred, linewidth=4)
plt.plot(dates_united_kingdom_train, y_united_kingdom_train, linewidth=1)
plt.legend(["Training Predictions", "Training Observations"])
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("United Kingdom - Training Set Predictions vs. Observations")
plt.show()

united_kingdom_val_pred = united_kingdom_model.predict(X_united_kingdom_val).flatten()

plt.plot(dates_united_kingdom_val, united_kingdom_val_pred, linewidth=4)
plt.plot(dates_united_kingdom_val, y_united_kingdom_val, linewidth=1)
plt.legend(["Validation Predictions", "Validation Observations"])
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("United Kingdom - Validation Set Predictions vs. Observations")
plt.show()

united_kingdom_test_pred = united_kingdom_model.predict(X_united_kingdom_test).flatten()

plt.plot(dates_united_kingdom_test, united_kingdom_test_pred, linewidth=4)
plt.plot(dates_united_kingdom_test, y_united_kingdom_test, linewidth=1)
plt.legend(["Testing Predictions", "Testing Observations"])
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("United Kingdom - Testing Set Predictions vs. Observations")
plt.show()
```
  1/126 [..............................] - ETA: 42s 37/126 [=======>......................] - ETA: 0s  77/126 [=================>............] - ETA: 0s123/126 [============================>.] - ETA: 0s126/126 [==============================] - 0s 1ms/step
 1/16 [>.............................] - ETA: 0s16/16 [==============================] - 0s 2ms/step
 1/16 [>.............................] - ETA: 0s16/16 [==============================] - 0s 2ms/step

Through careful consideration of all of the prediction-based vs. observation-based contrast visualizations together, I consolidated all of graphics into one singular visualization for you to see below to get a more general perspective of the effectiveness of the Machine Learning model at training and fitting towards predicting the United Kingdom’s international currency rate with the United States.

```{python}
# Plotting United Kingdom's observational (reference) data with the predictions 
# of its Machine Learning Model (as a way to visually inspect the effectiveness 
# of the model) 
plt.plot(dates_united_kingdom_train, united_kingdom_train_pred, linewidth=4)
plt.plot(dates_united_kingdom_train, y_united_kingdom_train, linewidth=1)
plt.plot(dates_united_kingdom_val, united_kingdom_val_pred, linewidth=4)
plt.plot(dates_united_kingdom_val, y_united_kingdom_val, linewidth=1)
plt.plot(dates_united_kingdom_test, united_kingdom_test_pred, linewidth=4)
plt.plot(dates_united_kingdom_test, y_united_kingdom_test, linewidth=1)

plt.legend(["Training Predictions",
            "Training Observations",
            "Validation Predictions",
            "Validation Observations",
            "Testing Predictions",
            "Testing Observations"])
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("Culmination of the Three Machine Learning Phases of United Kingdom's Dataset - Predictions vs. Observations")
plt.show()
```

Lastly, I worked on Switzerland’s data (as shown below):

Since the data (date, X, and y) is split into three np.arrays and to be more efficient, I will manually split Switzerland’s data into train, test, and validation datasets for the Machine Learning model with 80% going to the training dataset, the next 10% going to the validation dataset, and the last 10% going to the test dataset for each np.array respectively.

```{python}
# Splitting Switzerland's data into train, test, and validation sets on 3 
# mediums: the X-axis, the y-axis, and the indices (represented by dates)
dates_switzerland_train, X_switzerland_train, y_switzerland_train = dates_switzerland[:percentile_80], X_switzerland[:percentile_80], y_switzerland[:percentile_80]
dates_switzerland_val, X_switzerland_val, y_switzerland_val = dates_switzerland[percentile_80:percentile_90], X_switzerland[percentile_80:percentile_90], y_switzerland[percentile_80:percentile_90]
dates_switzerland_test, X_switzerland_test, y_switzerland_test = dates_switzerland[percentile_90:], X_switzerland[percentile_90:], y_switzerland[percentile_90:]

plt.plot(dates_switzerland_train, y_switzerland_train, linewidth=1)
plt.plot(dates_switzerland_val, y_switzerland_val, linewidth=1)
plt.plot(dates_switzerland_test, y_switzerland_test, linewidth=1)

plt.legend(["Training", "Validation", "Testing"])
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("Split of Switzerland's Data for LSTM Model")
plt.show()
```

Now, I began to configure the Machine Learning model. We added Sequential layers: an Input layer 3 by 1 because we will have 3 np.arrays of Input and 1 np.array as output, utilize a LSTM (Long Short-Term Memory) layer of 64 neurons, apply 2 levels of dense layers with 32 neurons and folliowing recommendations online to use the RELU (Rectified Linear Unit) Activiation Function, and I followed up with one last dense layer of 1 neuron as our output layer since we are just trying to linearly-predict the next currency-rate on a near-future date. Once I configured the Sequential layers, we are ready to compile the model, utilzing the mean_square_error as our minimizing loss function, using the Adam optimizer, and comparing our trained model against our data with the mean_absolute_error metric. Lastly, I fitted our model, utilzing our X_train and Y_train datasets for fitting with validation from our X_valid and Y_valid datasets at 100 epochs.

```{python}
# Configuring the Machine Learning Tensorflow Model for Switzerland
switzerland_model = Sequential([layers.Input((3, 1)),
                    layers.LSTM(64),
                    layers.Dense(32, activation="relu"),
                    layers.Dense(32, activation="relu"),
                    layers.Dense(1)])

switzerland_model.compile(loss="mse",
              optimizer=Adam(learning_rate=0.001),
              metrics=["mean_absolute_error"])

switzerland_model.fit(X_switzerland_train, y_switzerland_train, validation_data=(X_switzerland_val, y_switzerland_val), epochs=100)
```
Epoch 1/100
  1/126 [..............................] - ETA: 3:42 - loss: 1.3730 - mean_absolute_error: 1.1415 21/126 [====>.........................] - ETA: 0s - loss: 0.7272 - mean_absolute_error: 0.7960   45/126 [=========>....................] - ETA: 0s - loss: 0.3596 - mean_absolute_error: 0.4608 70/126 [===============>..............] - ETA: 0s - loss: 0.2341 - mean_absolute_error: 0.3208 96/126 [=====================>........] - ETA: 0s - loss: 0.1720 - mean_absolute_error: 0.2496123/126 [============================>.] - ETA: 0s - loss: 0.1352 - mean_absolute_error: 0.2067126/126 [==============================] - 2s 6ms/step - loss: 0.1327 - mean_absolute_error: 0.2036 - val_loss: 0.0029 - val_mean_absolute_error: 0.0529
Epoch 2/100
  1/126 [..............................] - ETA: 0s - loss: 0.0042 - mean_absolute_error: 0.0552 21/126 [====>.........................] - ETA: 0s - loss: 0.0032 - mean_absolute_error: 0.0475 42/126 [=========>....................] - ETA: 0s - loss: 0.0028 - mean_absolute_error: 0.0438 66/126 [==============>...............] - ETA: 0s - loss: 0.0024 - mean_absolute_error: 0.0408 89/126 [====================>.........] - ETA: 0s - loss: 0.0022 - mean_absolute_error: 0.0381115/126 [==========================>...] - ETA: 0s - loss: 0.0019 - mean_absolute_error: 0.0355126/126 [==============================] - 0s 3ms/step - loss: 0.0018 - mean_absolute_error: 0.0344 - val_loss: 3.2377e-04 - val_mean_absolute_error: 0.0166
Epoch 3/100
  1/126 [..............................] - ETA: 0s - loss: 8.9574e-04 - mean_absolute_error: 0.0242 24/126 [====>.........................] - ETA: 0s - loss: 5.5201e-04 - mean_absolute_error: 0.0191 48/126 [==========>...................] - ETA: 0s - loss: 4.5932e-04 - mean_absolute_error: 0.0173 73/126 [================>.............] - ETA: 0s - loss: 4.0907e-04 - mean_absolute_error: 0.0162100/126 [======================>.......] - ETA: 0s - loss: 3.5389e-04 - mean_absolute_error: 0.0149126/126 [==============================] - ETA: 0s - loss: 3.2067e-04 - mean_absolute_error: 0.0140126/126 [==============================] - 0s 2ms/step - loss: 3.2067e-04 - mean_absolute_error: 0.0140 - val_loss: 8.5956e-05 - val_mean_absolute_error: 0.0076
Epoch 4/100
  1/126 [..............................] - ETA: 0s - loss: 1.1459e-04 - mean_absolute_error: 0.0092 24/126 [====>.........................] - ETA: 0s - loss: 1.5400e-04 - mean_absolute_error: 0.0099 49/126 [==========>...................] - ETA: 0s - loss: 1.4740e-04 - mean_absolute_error: 0.0096 73/126 [================>.............] - ETA: 0s - loss: 1.5037e-04 - mean_absolute_error: 0.0096 99/126 [======================>.......] - ETA: 0s - loss: 1.4593e-04 - mean_absolute_error: 0.0094125/126 [============================>.] - ETA: 0s - loss: 1.5039e-04 - mean_absolute_error: 0.0093126/126 [==============================] - 0s 2ms/step - loss: 1.5047e-04 - mean_absolute_error: 0.0093 - val_loss: 4.9823e-05 - val_mean_absolute_error: 0.0055
Epoch 5/100
  1/126 [..............................] - ETA: 0s - loss: 9.0082e-05 - mean_absolute_error: 0.0077 26/126 [=====>........................] - ETA: 0s - loss: 1.3687e-04 - mean_absolute_error: 0.0090 52/126 [===========>..................] - ETA: 0s - loss: 1.4424e-04 - mean_absolute_error: 0.0090 74/126 [================>.............] - ETA: 0s - loss: 1.4113e-04 - mean_absolute_error: 0.0089100/126 [======================>.......] - ETA: 0s - loss: 1.4091e-04 - mean_absolute_error: 0.0089123/126 [============================>.] - ETA: 0s - loss: 1.4480e-04 - mean_absolute_error: 0.0090126/126 [==============================] - 0s 2ms/step - loss: 1.4554e-04 - mean_absolute_error: 0.0090 - val_loss: 6.5138e-05 - val_mean_absolute_error: 0.0065
Epoch 6/100
  1/126 [..............................] - ETA: 0s - loss: 6.4829e-04 - mean_absolute_error: 0.0134 26/126 [=====>........................] - ETA: 0s - loss: 1.5793e-04 - mean_absolute_error: 0.0092 53/126 [===========>..................] - ETA: 0s - loss: 1.4743e-04 - mean_absolute_error: 0.0091 79/126 [=================>............] - ETA: 0s - loss: 1.5552e-04 - mean_absolute_error: 0.0092106/126 [========================>.....] - ETA: 0s - loss: 1.5303e-04 - mean_absolute_error: 0.0092126/126 [==============================] - 0s 2ms/step - loss: 1.5232e-04 - mean_absolute_error: 0.0093 - val_loss: 5.7060e-05 - val_mean_absolute_error: 0.0060
Epoch 7/100
  1/126 [..............................] - ETA: 0s - loss: 1.7864e-04 - mean_absolute_error: 0.0091 26/126 [=====>........................] - ETA: 0s - loss: 1.5495e-04 - mean_absolute_error: 0.0095 51/126 [===========>..................] - ETA: 0s - loss: 1.4610e-04 - mean_absolute_error: 0.0092 78/126 [=================>............] - ETA: 0s - loss: 1.4444e-04 - mean_absolute_error: 0.0092103/126 [=======================>......] - ETA: 0s - loss: 1.4189e-04 - mean_absolute_error: 0.0091126/126 [==============================] - 0s 2ms/step - loss: 1.4971e-04 - mean_absolute_error: 0.0091 - val_loss: 4.9860e-05 - val_mean_absolute_error: 0.0055
Epoch 8/100
  1/126 [..............................] - ETA: 0s - loss: 1.8089e-04 - mean_absolute_error: 0.0104 24/126 [====>.........................] - ETA: 0s - loss: 1.4598e-04 - mean_absolute_error: 0.0091 51/126 [===========>..................] - ETA: 0s - loss: 1.4922e-04 - mean_absolute_error: 0.0090 78/126 [=================>............] - ETA: 0s - loss: 1.4662e-04 - mean_absolute_error: 0.0090104/126 [=======================>......] - ETA: 0s - loss: 1.4239e-04 - mean_absolute_error: 0.0090126/126 [==============================] - 0s 2ms/step - loss: 1.4765e-04 - mean_absolute_error: 0.0090 - val_loss: 5.0121e-05 - val_mean_absolute_error: 0.0055
Epoch 9/100
  1/126 [..............................] - ETA: 0s - loss: 1.6461e-04 - mean_absolute_error: 0.0104 24/126 [====>.........................] - ETA: 0s - loss: 1.3712e-04 - mean_absolute_error: 0.0092 51/126 [===========>..................] - ETA: 0s - loss: 1.4779e-04 - mean_absolute_error: 0.0091 77/126 [=================>............] - ETA: 0s - loss: 1.4532e-04 - mean_absolute_error: 0.0090103/126 [=======================>......] - ETA: 0s - loss: 1.4642e-04 - mean_absolute_error: 0.0091126/126 [==============================] - 0s 2ms/step - loss: 1.5588e-04 - mean_absolute_error: 0.0093 - val_loss: 6.1764e-05 - val_mean_absolute_error: 0.0063
Epoch 10/100
  1/126 [..............................] - ETA: 0s - loss: 1.1407e-04 - mean_absolute_error: 0.0088 19/126 [===>..........................] - ETA: 0s - loss: 1.7799e-04 - mean_absolute_error: 0.0097 43/126 [=========>....................] - ETA: 0s - loss: 1.5900e-04 - mean_absolute_error: 0.0094 68/126 [===============>..............] - ETA: 0s - loss: 1.5524e-04 - mean_absolute_error: 0.0092 93/126 [=====================>........] - ETA: 0s - loss: 1.4911e-04 - mean_absolute_error: 0.0090119/126 [===========================>..] - ETA: 0s - loss: 1.5029e-04 - mean_absolute_error: 0.0092126/126 [==============================] - 0s 2ms/step - loss: 1.5023e-04 - mean_absolute_error: 0.0092 - val_loss: 5.1470e-05 - val_mean_absolute_error: 0.0057
Epoch 11/100
  1/126 [..............................] - ETA: 0s - loss: 7.3217e-05 - mean_absolute_error: 0.0070 26/126 [=====>........................] - ETA: 0s - loss: 1.4848e-04 - mean_absolute_error: 0.0093 52/126 [===========>..................] - ETA: 0s - loss: 1.5310e-04 - mean_absolute_error: 0.0092 79/126 [=================>............] - ETA: 0s - loss: 1.5604e-04 - mean_absolute_error: 0.0092105/126 [========================>.....] - ETA: 0s - loss: 1.5055e-04 - mean_absolute_error: 0.0091126/126 [==============================] - 0s 2ms/step - loss: 1.4906e-04 - mean_absolute_error: 0.0091 - val_loss: 5.6156e-05 - val_mean_absolute_error: 0.0060
Epoch 12/100
  1/126 [..............................] - ETA: 0s - loss: 1.1627e-04 - mean_absolute_error: 0.0089 20/126 [===>..........................] - ETA: 0s - loss: 1.7592e-04 - mean_absolute_error: 0.0097 42/126 [=========>....................] - ETA: 0s - loss: 1.5565e-04 - mean_absolute_error: 0.0093 66/126 [==============>...............] - ETA: 0s - loss: 1.5099e-04 - mean_absolute_error: 0.0090 91/126 [====================>.........] - ETA: 0s - loss: 1.4855e-04 - mean_absolute_error: 0.0090116/126 [==========================>...] - ETA: 0s - loss: 1.4725e-04 - mean_absolute_error: 0.0090126/126 [==============================] - 0s 3ms/step - loss: 1.4685e-04 - mean_absolute_error: 0.0090 - val_loss: 7.1898e-05 - val_mean_absolute_error: 0.0069
Epoch 13/100
  1/126 [..............................] - ETA: 0s - loss: 9.4426e-05 - mean_absolute_error: 0.0086 24/126 [====>.........................] - ETA: 0s - loss: 1.5994e-04 - mean_absolute_error: 0.0096 50/126 [==========>...................] - ETA: 0s - loss: 1.5668e-04 - mean_absolute_error: 0.0093 74/126 [================>.............] - ETA: 0s - loss: 1.5107e-04 - mean_absolute_error: 0.0092 88/126 [===================>..........] - ETA: 0s - loss: 1.6053e-04 - mean_absolute_error: 0.0094108/126 [========================>.....] - ETA: 0s - loss: 1.5505e-04 - mean_absolute_error: 0.0093126/126 [==============================] - 0s 3ms/step - loss: 1.5001e-04 - mean_absolute_error: 0.0092 - val_loss: 6.0124e-05 - val_mean_absolute_error: 0.0062
Epoch 14/100
  1/126 [..............................] - ETA: 0s - loss: 1.2783e-04 - mean_absolute_error: 0.0087 26/126 [=====>........................] - ETA: 0s - loss: 1.2019e-04 - mean_absolute_error: 0.0085 53/126 [===========>..................] - ETA: 0s - loss: 1.3768e-04 - mean_absolute_error: 0.0089 78/126 [=================>............] - ETA: 0s - loss: 1.4576e-04 - mean_absolute_error: 0.0090103/126 [=======================>......] - ETA: 0s - loss: 1.4744e-04 - mean_absolute_error: 0.0090126/126 [==============================] - 0s 2ms/step - loss: 1.4752e-04 - mean_absolute_error: 0.0091 - val_loss: 5.0648e-05 - val_mean_absolute_error: 0.0056
Epoch 15/100
  1/126 [..............................] - ETA: 0s - loss: 1.3685e-04 - mean_absolute_error: 0.0087 22/126 [====>.........................] - ETA: 0s - loss: 1.2437e-04 - mean_absolute_error: 0.0086 47/126 [==========>...................] - ETA: 0s - loss: 1.3162e-04 - mean_absolute_error: 0.0087 71/126 [===============>..............] - ETA: 0s - loss: 1.4279e-04 - mean_absolute_error: 0.0089 97/126 [======================>.......] - ETA: 0s - loss: 1.4113e-04 - mean_absolute_error: 0.0089123/126 [============================>.] - ETA: 0s - loss: 1.4753e-04 - mean_absolute_error: 0.0090126/126 [==============================] - 0s 2ms/step - loss: 1.4770e-04 - mean_absolute_error: 0.0090 - val_loss: 9.9290e-05 - val_mean_absolute_error: 0.0082
Epoch 16/100
  1/126 [..............................] - ETA: 0s - loss: 1.6259e-04 - mean_absolute_error: 0.0106 21/126 [====>.........................] - ETA: 0s - loss: 1.3525e-04 - mean_absolute_error: 0.0088 46/126 [=========>....................] - ETA: 0s - loss: 1.4180e-04 - mean_absolute_error: 0.0091 72/126 [================>.............] - ETA: 0s - loss: 1.3847e-04 - mean_absolute_error: 0.0090 97/126 [======================>.......] - ETA: 0s - loss: 1.4132e-04 - mean_absolute_error: 0.0089121/126 [===========================>..] - ETA: 0s - loss: 1.3973e-04 - mean_absolute_error: 0.0089126/126 [==============================] - 0s 2ms/step - loss: 1.4442e-04 - mean_absolute_error: 0.0089 - val_loss: 5.3399e-05 - val_mean_absolute_error: 0.0058
Epoch 17/100
  1/126 [..............................] - ETA: 0s - loss: 8.7346e-05 - mean_absolute_error: 0.0074 26/126 [=====>........................] - ETA: 0s - loss: 1.4165e-04 - mean_absolute_error: 0.0090 54/126 [===========>..................] - ETA: 0s - loss: 1.4448e-04 - mean_absolute_error: 0.0091 80/126 [==================>...........] - ETA: 0s - loss: 1.3783e-04 - mean_absolute_error: 0.0089106/126 [========================>.....] - ETA: 0s - loss: 1.4930e-04 - mean_absolute_error: 0.0091126/126 [==============================] - 0s 2ms/step - loss: 1.4515e-04 - mean_absolute_error: 0.0090 - val_loss: 4.9412e-05 - val_mean_absolute_error: 0.0054
Epoch 18/100
  1/126 [..............................] - ETA: 0s - loss: 8.9229e-05 - mean_absolute_error: 0.0076 25/126 [====>.........................] - ETA: 0s - loss: 1.2348e-04 - mean_absolute_error: 0.0083 52/126 [===========>..................] - ETA: 0s - loss: 1.4205e-04 - mean_absolute_error: 0.0089 75/126 [================>.............] - ETA: 0s - loss: 1.5117e-04 - mean_absolute_error: 0.0092 98/126 [======================>.......] - ETA: 0s - loss: 1.4894e-04 - mean_absolute_error: 0.0092122/126 [============================>.] - ETA: 0s - loss: 1.5100e-04 - mean_absolute_error: 0.0092126/126 [==============================] - 0s 2ms/step - loss: 1.5017e-04 - mean_absolute_error: 0.0091 - val_loss: 4.9542e-05 - val_mean_absolute_error: 0.0054
Epoch 19/100
  1/126 [..............................] - ETA: 0s - loss: 9.7513e-05 - mean_absolute_error: 0.0079 25/126 [====>.........................] - ETA: 0s - loss: 1.2849e-04 - mean_absolute_error: 0.0088 50/126 [==========>...................] - ETA: 0s - loss: 1.5306e-04 - mean_absolute_error: 0.0091 75/126 [================>.............] - ETA: 0s - loss: 1.5003e-04 - mean_absolute_error: 0.0089100/126 [======================>.......] - ETA: 0s - loss: 1.4608e-04 - mean_absolute_error: 0.0089125/126 [============================>.] - ETA: 0s - loss: 1.4221e-04 - mean_absolute_error: 0.0089126/126 [==============================] - 0s 2ms/step - loss: 1.4234e-04 - mean_absolute_error: 0.0089 - val_loss: 6.7265e-05 - val_mean_absolute_error: 0.0066
Epoch 20/100
  1/126 [..............................] - ETA: 0s - loss: 3.5723e-04 - mean_absolute_error: 0.0129 25/126 [====>.........................] - ETA: 0s - loss: 1.3492e-04 - mean_absolute_error: 0.0088 50/126 [==========>...................] - ETA: 0s - loss: 1.5718e-04 - mean_absolute_error: 0.0091 75/126 [================>.............] - ETA: 0s - loss: 1.6956e-04 - mean_absolute_error: 0.0096100/126 [======================>.......] - ETA: 0s - loss: 1.6584e-04 - mean_absolute_error: 0.0096125/126 [============================>.] - ETA: 0s - loss: 1.5989e-04 - mean_absolute_error: 0.0094126/126 [==============================] - 0s 2ms/step - loss: 1.5989e-04 - mean_absolute_error: 0.0094 - val_loss: 4.9040e-05 - val_mean_absolute_error: 0.0054
Epoch 21/100
  1/126 [..............................] - ETA: 0s - loss: 1.5784e-04 - mean_absolute_error: 0.0097 25/126 [====>.........................] - ETA: 0s - loss: 1.2941e-04 - mean_absolute_error: 0.0087 49/126 [==========>...................] - ETA: 0s - loss: 1.2685e-04 - mean_absolute_error: 0.0086 71/126 [===============>..............] - ETA: 0s - loss: 1.4204e-04 - mean_absolute_error: 0.0088 90/126 [====================>.........] - ETA: 0s - loss: 1.4806e-04 - mean_absolute_error: 0.0090112/126 [=========================>....] - ETA: 0s - loss: 1.4662e-04 - mean_absolute_error: 0.0090126/126 [==============================] - 0s 3ms/step - loss: 1.4431e-04 - mean_absolute_error: 0.0090 - val_loss: 5.5608e-05 - val_mean_absolute_error: 0.0060
Epoch 22/100
  1/126 [..............................] - ETA: 0s - loss: 1.0242e-04 - mean_absolute_error: 0.0080 26/126 [=====>........................] - ETA: 0s - loss: 1.3343e-04 - mean_absolute_error: 0.0089 51/126 [===========>..................] - ETA: 0s - loss: 1.4565e-04 - mean_absolute_error: 0.0093 76/126 [=================>............] - ETA: 0s - loss: 1.6143e-04 - mean_absolute_error: 0.0094101/126 [=======================>......] - ETA: 0s - loss: 1.5706e-04 - mean_absolute_error: 0.0094125/126 [============================>.] - ETA: 0s - loss: 1.5111e-04 - mean_absolute_error: 0.0092126/126 [==============================] - 0s 2ms/step - loss: 1.5108e-04 - mean_absolute_error: 0.0092 - val_loss: 5.0210e-05 - val_mean_absolute_error: 0.0055
Epoch 23/100
  1/126 [..............................] - ETA: 0s - loss: 7.3105e-05 - mean_absolute_error: 0.0069 26/126 [=====>........................] - ETA: 0s - loss: 1.5353e-04 - mean_absolute_error: 0.0093 51/126 [===========>..................] - ETA: 0s - loss: 1.4134e-04 - mean_absolute_error: 0.0091 76/126 [=================>............] - ETA: 0s - loss: 1.3714e-04 - mean_absolute_error: 0.0089101/126 [=======================>......] - ETA: 0s - loss: 1.4811e-04 - mean_absolute_error: 0.0090126/126 [==============================] - ETA: 0s - loss: 1.4760e-04 - mean_absolute_error: 0.0091126/126 [==============================] - 0s 2ms/step - loss: 1.4760e-04 - mean_absolute_error: 0.0091 - val_loss: 5.7673e-05 - val_mean_absolute_error: 0.0061
Epoch 24/100
  1/126 [..............................] - ETA: 0s - loss: 1.2537e-04 - mean_absolute_error: 0.0090 25/126 [====>.........................] - ETA: 0s - loss: 1.6627e-04 - mean_absolute_error: 0.0091 46/126 [=========>....................] - ETA: 0s - loss: 1.4451e-04 - mean_absolute_error: 0.0088 70/126 [===============>..............] - ETA: 0s - loss: 1.4147e-04 - mean_absolute_error: 0.0088 94/126 [=====================>........] - ETA: 0s - loss: 1.4086e-04 - mean_absolute_error: 0.0088120/126 [===========================>..] - ETA: 0s - loss: 1.4205e-04 - mean_absolute_error: 0.0088126/126 [==============================] - 0s 2ms/step - loss: 1.4534e-04 - mean_absolute_error: 0.0089 - val_loss: 5.3024e-05 - val_mean_absolute_error: 0.0058
Epoch 25/100
  1/126 [..............................] - ETA: 0s - loss: 1.9114e-04 - mean_absolute_error: 0.0100 23/126 [====>.........................] - ETA: 0s - loss: 1.3620e-04 - mean_absolute_error: 0.0086 47/126 [==========>...................] - ETA: 0s - loss: 1.3350e-04 - mean_absolute_error: 0.0086 72/126 [================>.............] - ETA: 0s - loss: 1.4330e-04 - mean_absolute_error: 0.0089 97/126 [======================>.......] - ETA: 0s - loss: 1.5044e-04 - mean_absolute_error: 0.0091122/126 [============================>.] - ETA: 0s - loss: 1.4408e-04 - mean_absolute_error: 0.0089126/126 [==============================] - 0s 2ms/step - loss: 1.4455e-04 - mean_absolute_error: 0.0090 - val_loss: 5.7125e-05 - val_mean_absolute_error: 0.0061
Epoch 26/100
  1/126 [..............................] - ETA: 0s - loss: 2.3450e-04 - mean_absolute_error: 0.0120 26/126 [=====>........................] - ETA: 0s - loss: 1.3909e-04 - mean_absolute_error: 0.0090 51/126 [===========>..................] - ETA: 0s - loss: 1.4903e-04 - mean_absolute_error: 0.0091 76/126 [=================>............] - ETA: 0s - loss: 1.4296e-04 - mean_absolute_error: 0.0090100/126 [======================>.......] - ETA: 0s - loss: 1.4584e-04 - mean_absolute_error: 0.0090124/126 [============================>.] - ETA: 0s - loss: 1.5245e-04 - mean_absolute_error: 0.0092126/126 [==============================] - 0s 2ms/step - loss: 1.5229e-04 - mean_absolute_error: 0.0092 - val_loss: 7.3404e-05 - val_mean_absolute_error: 0.0070
Epoch 27/100
  1/126 [..............................] - ETA: 0s - loss: 1.4389e-04 - mean_absolute_error: 0.0095 26/126 [=====>........................] - ETA: 0s - loss: 1.5860e-04 - mean_absolute_error: 0.0097 50/126 [==========>...................] - ETA: 0s - loss: 1.7370e-04 - mean_absolute_error: 0.0099 74/126 [================>.............] - ETA: 0s - loss: 1.6543e-04 - mean_absolute_error: 0.0098 97/126 [======================>.......] - ETA: 0s - loss: 1.6447e-04 - mean_absolute_error: 0.0096122/126 [============================>.] - ETA: 0s - loss: 1.6263e-04 - mean_absolute_error: 0.0096126/126 [==============================] - 0s 2ms/step - loss: 1.6179e-04 - mean_absolute_error: 0.0096 - val_loss: 4.8947e-05 - val_mean_absolute_error: 0.0053
Epoch 28/100
  1/126 [..............................] - ETA: 0s - loss: 1.0686e-04 - mean_absolute_error: 0.0081 26/126 [=====>........................] - ETA: 0s - loss: 1.2665e-04 - mean_absolute_error: 0.0087 49/126 [==========>...................] - ETA: 0s - loss: 1.4139e-04 - mean_absolute_error: 0.0089 72/126 [================>.............] - ETA: 0s - loss: 1.4719e-04 - mean_absolute_error: 0.0090 97/126 [======================>.......] - ETA: 0s - loss: 1.5086e-04 - mean_absolute_error: 0.0091122/126 [============================>.] - ETA: 0s - loss: 1.5475e-04 - mean_absolute_error: 0.0093126/126 [==============================] - 0s 2ms/step - loss: 1.5405e-04 - mean_absolute_error: 0.0093 - val_loss: 6.9488e-05 - val_mean_absolute_error: 0.0068
Epoch 29/100
  1/126 [..............................] - ETA: 0s - loss: 1.0316e-04 - mean_absolute_error: 0.0077 26/126 [=====>........................] - ETA: 0s - loss: 1.6152e-04 - mean_absolute_error: 0.0092 51/126 [===========>..................] - ETA: 0s - loss: 1.5706e-04 - mean_absolute_error: 0.0091 75/126 [================>.............] - ETA: 0s - loss: 1.6957e-04 - mean_absolute_error: 0.0097 99/126 [======================>.......] - ETA: 0s - loss: 1.6123e-04 - mean_absolute_error: 0.0095124/126 [============================>.] - ETA: 0s - loss: 1.5465e-04 - mean_absolute_error: 0.0093126/126 [==============================] - 0s 2ms/step - loss: 1.5477e-04 - mean_absolute_error: 0.0093 - val_loss: 4.9112e-05 - val_mean_absolute_error: 0.0054
Epoch 30/100
  1/126 [..............................] - ETA: 0s - loss: 1.5564e-04 - mean_absolute_error: 0.0097 26/126 [=====>........................] - ETA: 0s - loss: 1.5072e-04 - mean_absolute_error: 0.0094 51/126 [===========>..................] - ETA: 0s - loss: 1.5435e-04 - mean_absolute_error: 0.0093 76/126 [=================>............] - ETA: 0s - loss: 1.5955e-04 - mean_absolute_error: 0.0095101/126 [=======================>......] - ETA: 0s - loss: 1.5639e-04 - mean_absolute_error: 0.0093123/126 [============================>.] - ETA: 0s - loss: 1.5123e-04 - mean_absolute_error: 0.0092126/126 [==============================] - 0s 2ms/step - loss: 1.5194e-04 - mean_absolute_error: 0.0092 - val_loss: 4.9153e-05 - val_mean_absolute_error: 0.0054
Epoch 31/100
  1/126 [..............................] - ETA: 0s - loss: 6.5165e-04 - mean_absolute_error: 0.0121 25/126 [====>.........................] - ETA: 0s - loss: 1.7427e-04 - mean_absolute_error: 0.0095 49/126 [==========>...................] - ETA: 0s - loss: 1.5060e-04 - mean_absolute_error: 0.0091 74/126 [================>.............] - ETA: 0s - loss: 1.4386e-04 - mean_absolute_error: 0.0091 97/126 [======================>.......] - ETA: 0s - loss: 1.4114e-04 - mean_absolute_error: 0.0090120/126 [===========================>..] - ETA: 0s - loss: 1.4537e-04 - mean_absolute_error: 0.0090126/126 [==============================] - 0s 2ms/step - loss: 1.4509e-04 - mean_absolute_error: 0.0090 - val_loss: 4.9122e-05 - val_mean_absolute_error: 0.0054
Epoch 32/100
  1/126 [..............................] - ETA: 0s - loss: 1.1262e-04 - mean_absolute_error: 0.0084 26/126 [=====>........................] - ETA: 0s - loss: 1.3695e-04 - mean_absolute_error: 0.0091 51/126 [===========>..................] - ETA: 0s - loss: 1.7179e-04 - mean_absolute_error: 0.0098 76/126 [=================>............] - ETA: 0s - loss: 1.6107e-04 - mean_absolute_error: 0.0095101/126 [=======================>......] - ETA: 0s - loss: 1.6018e-04 - mean_absolute_error: 0.0094125/126 [============================>.] - ETA: 0s - loss: 1.5656e-04 - mean_absolute_error: 0.0093126/126 [==============================] - 0s 2ms/step - loss: 1.5685e-04 - mean_absolute_error: 0.0093 - val_loss: 5.0242e-05 - val_mean_absolute_error: 0.0056
Epoch 33/100
  1/126 [..............................] - ETA: 0s - loss: 1.3962e-04 - mean_absolute_error: 0.0091 26/126 [=====>........................] - ETA: 0s - loss: 1.4660e-04 - mean_absolute_error: 0.0095 49/126 [==========>...................] - ETA: 0s - loss: 1.5740e-04 - mean_absolute_error: 0.0099 74/126 [================>.............] - ETA: 0s - loss: 1.7527e-04 - mean_absolute_error: 0.0100 99/126 [======================>.......] - ETA: 0s - loss: 1.6892e-04 - mean_absolute_error: 0.0099124/126 [============================>.] - ETA: 0s - loss: 1.8012e-04 - mean_absolute_error: 0.0102126/126 [==============================] - 0s 2ms/step - loss: 1.7994e-04 - mean_absolute_error: 0.0102 - val_loss: 8.4862e-05 - val_mean_absolute_error: 0.0076
Epoch 34/100
  1/126 [..............................] - ETA: 0s - loss: 1.7046e-04 - mean_absolute_error: 0.0110 24/126 [====>.........................] - ETA: 0s - loss: 1.6121e-04 - mean_absolute_error: 0.0098 49/126 [==========>...................] - ETA: 0s - loss: 1.6938e-04 - mean_absolute_error: 0.0100 74/126 [================>.............] - ETA: 0s - loss: 1.7492e-04 - mean_absolute_error: 0.0100 99/126 [======================>.......] - ETA: 0s - loss: 1.7683e-04 - mean_absolute_error: 0.0100122/126 [============================>.] - ETA: 0s - loss: 1.7741e-04 - mean_absolute_error: 0.0101126/126 [==============================] - 0s 2ms/step - loss: 1.7906e-04 - mean_absolute_error: 0.0100 - val_loss: 1.2857e-04 - val_mean_absolute_error: 0.0097
Epoch 35/100
  1/126 [..............................] - ETA: 0s - loss: 3.1986e-04 - mean_absolute_error: 0.0143 26/126 [=====>........................] - ETA: 0s - loss: 1.5026e-04 - mean_absolute_error: 0.0095 51/126 [===========>..................] - ETA: 0s - loss: 1.4186e-04 - mean_absolute_error: 0.0092 76/126 [=================>............] - ETA: 0s - loss: 1.5518e-04 - mean_absolute_error: 0.0096101/126 [=======================>......] - ETA: 0s - loss: 1.5864e-04 - mean_absolute_error: 0.0096126/126 [==============================] - ETA: 0s - loss: 1.5821e-04 - mean_absolute_error: 0.0094126/126 [==============================] - 0s 2ms/step - loss: 1.5821e-04 - mean_absolute_error: 0.0094 - val_loss: 7.3030e-05 - val_mean_absolute_error: 0.0070
Epoch 36/100
  1/126 [..............................] - ETA: 0s - loss: 1.1268e-04 - mean_absolute_error: 0.0084 25/126 [====>.........................] - ETA: 0s - loss: 1.3906e-04 - mean_absolute_error: 0.0091 50/126 [==========>...................] - ETA: 0s - loss: 1.3236e-04 - mean_absolute_error: 0.0088 74/126 [================>.............] - ETA: 0s - loss: 1.3844e-04 - mean_absolute_error: 0.0090 98/126 [======================>.......] - ETA: 0s - loss: 1.4934e-04 - mean_absolute_error: 0.0092123/126 [============================>.] - ETA: 0s - loss: 1.5217e-04 - mean_absolute_error: 0.0092126/126 [==============================] - 0s 2ms/step - loss: 1.5196e-04 - mean_absolute_error: 0.0092 - val_loss: 6.1326e-05 - val_mean_absolute_error: 0.0063
Epoch 37/100
  1/126 [..............................] - ETA: 0s - loss: 1.0088e-04 - mean_absolute_error: 0.0080 25/126 [====>.........................] - ETA: 0s - loss: 1.6903e-04 - mean_absolute_error: 0.0090 48/126 [==========>...................] - ETA: 0s - loss: 1.5017e-04 - mean_absolute_error: 0.0088 72/126 [================>.............] - ETA: 0s - loss: 1.4332e-04 - mean_absolute_error: 0.0089 97/126 [======================>.......] - ETA: 0s - loss: 1.4880e-04 - mean_absolute_error: 0.0091122/126 [============================>.] - ETA: 0s - loss: 1.4977e-04 - mean_absolute_error: 0.0092126/126 [==============================] - 0s 2ms/step - loss: 1.5002e-04 - mean_absolute_error: 0.0092 - val_loss: 4.9157e-05 - val_mean_absolute_error: 0.0054
Epoch 38/100
  1/126 [..............................] - ETA: 0s - loss: 1.3328e-04 - mean_absolute_error: 0.0087 23/126 [====>.........................] - ETA: 0s - loss: 1.1986e-04 - mean_absolute_error: 0.0085 47/126 [==========>...................] - ETA: 0s - loss: 1.4391e-04 - mean_absolute_error: 0.0089 72/126 [================>.............] - ETA: 0s - loss: 1.6477e-04 - mean_absolute_error: 0.0097 97/126 [======================>.......] - ETA: 0s - loss: 1.7378e-04 - mean_absolute_error: 0.0099122/126 [============================>.] - ETA: 0s - loss: 1.7126e-04 - mean_absolute_error: 0.0099126/126 [==============================] - 0s 2ms/step - loss: 1.7210e-04 - mean_absolute_error: 0.0100 - val_loss: 1.6767e-04 - val_mean_absolute_error: 0.0112
Epoch 39/100
  1/126 [..............................] - ETA: 0s - loss: 3.1622e-04 - mean_absolute_error: 0.0153 25/126 [====>.........................] - ETA: 0s - loss: 2.4900e-04 - mean_absolute_error: 0.0124 50/126 [==========>...................] - ETA: 0s - loss: 2.0156e-04 - mean_absolute_error: 0.0106 74/126 [================>.............] - ETA: 0s - loss: 1.8487e-04 - mean_absolute_error: 0.0103 99/126 [======================>.......] - ETA: 0s - loss: 1.7190e-04 - mean_absolute_error: 0.0099122/126 [============================>.] - ETA: 0s - loss: 1.8304e-04 - mean_absolute_error: 0.0102126/126 [==============================] - 0s 3ms/step - loss: 1.8481e-04 - mean_absolute_error: 0.0103 - val_loss: 8.8153e-05 - val_mean_absolute_error: 0.0078
Epoch 40/100
  1/126 [..............................] - ETA: 0s - loss: 2.6380e-04 - mean_absolute_error: 0.0127 23/126 [====>.........................] - ETA: 0s - loss: 2.2519e-04 - mean_absolute_error: 0.0114 47/126 [==========>...................] - ETA: 0s - loss: 1.8744e-04 - mean_absolute_error: 0.0105 68/126 [===============>..............] - ETA: 0s - loss: 1.7860e-04 - mean_absolute_error: 0.0103 92/126 [====================>.........] - ETA: 0s - loss: 1.6901e-04 - mean_absolute_error: 0.0098117/126 [==========================>...] - ETA: 0s - loss: 1.6119e-04 - mean_absolute_error: 0.0095126/126 [==============================] - 0s 3ms/step - loss: 1.5820e-04 - mean_absolute_error: 0.0095 - val_loss: 4.8410e-05 - val_mean_absolute_error: 0.0053
Epoch 41/100
  1/126 [..............................] - ETA: 0s - loss: 1.2986e-04 - mean_absolute_error: 0.0081 24/126 [====>.........................] - ETA: 0s - loss: 1.7214e-04 - mean_absolute_error: 0.0101 48/126 [==========>...................] - ETA: 0s - loss: 1.7373e-04 - mean_absolute_error: 0.0102 73/126 [================>.............] - ETA: 0s - loss: 1.6277e-04 - mean_absolute_error: 0.0098 98/126 [======================>.......] - ETA: 0s - loss: 1.5861e-04 - mean_absolute_error: 0.0095121/126 [===========================>..] - ETA: 0s - loss: 1.6164e-04 - mean_absolute_error: 0.0096126/126 [==============================] - 0s 3ms/step - loss: 1.6114e-04 - mean_absolute_error: 0.0095 - val_loss: 9.4350e-05 - val_mean_absolute_error: 0.0080
Epoch 42/100
  1/126 [..............................] - ETA: 0s - loss: 1.3106e-04 - mean_absolute_error: 0.0095 24/126 [====>.........................] - ETA: 0s - loss: 1.4351e-04 - mean_absolute_error: 0.0087 48/126 [==========>...................] - ETA: 0s - loss: 1.4441e-04 - mean_absolute_error: 0.0087 72/126 [================>.............] - ETA: 0s - loss: 1.3733e-04 - mean_absolute_error: 0.0086 96/126 [=====================>........] - ETA: 0s - loss: 1.3341e-04 - mean_absolute_error: 0.0085121/126 [===========================>..] - ETA: 0s - loss: 1.3631e-04 - mean_absolute_error: 0.0086126/126 [==============================] - 0s 2ms/step - loss: 1.3568e-04 - mean_absolute_error: 0.0086 - val_loss: 1.0756e-04 - val_mean_absolute_error: 0.0086
Epoch 43/100
  1/126 [..............................] - ETA: 0s - loss: 2.4980e-04 - mean_absolute_error: 0.0135 26/126 [=====>........................] - ETA: 0s - loss: 1.5742e-04 - mean_absolute_error: 0.0092 51/126 [===========>..................] - ETA: 0s - loss: 1.6269e-04 - mean_absolute_error: 0.0096 75/126 [================>.............] - ETA: 0s - loss: 1.5452e-04 - mean_absolute_error: 0.0095 99/126 [======================>.......] - ETA: 0s - loss: 1.6213e-04 - mean_absolute_error: 0.0096122/126 [============================>.] - ETA: 0s - loss: 1.6192e-04 - mean_absolute_error: 0.0097126/126 [==============================] - 0s 3ms/step - loss: 1.6119e-04 - mean_absolute_error: 0.0096 - val_loss: 7.0193e-05 - val_mean_absolute_error: 0.0068
Epoch 44/100
  1/126 [..............................] - ETA: 0s - loss: 1.5904e-04 - mean_absolute_error: 0.0102 23/126 [====>.........................] - ETA: 0s - loss: 1.7126e-04 - mean_absolute_error: 0.0098 44/126 [=========>....................] - ETA: 0s - loss: 1.4892e-04 - mean_absolute_error: 0.0093 67/126 [==============>...............] - ETA: 0s - loss: 1.4308e-04 - mean_absolute_error: 0.0090 91/126 [====================>.........] - ETA: 0s - loss: 1.4229e-04 - mean_absolute_error: 0.0091115/126 [==========================>...] - ETA: 0s - loss: 1.4691e-04 - mean_absolute_error: 0.0091126/126 [==============================] - 0s 3ms/step - loss: 1.4819e-04 - mean_absolute_error: 0.0090 - val_loss: 4.8397e-05 - val_mean_absolute_error: 0.0054
Epoch 45/100
  1/126 [..............................] - ETA: 0s - loss: 1.9342e-04 - mean_absolute_error: 0.0106 25/126 [====>.........................] - ETA: 0s - loss: 1.6026e-04 - mean_absolute_error: 0.0091 50/126 [==========>...................] - ETA: 0s - loss: 1.5331e-04 - mean_absolute_error: 0.0092 75/126 [================>.............] - ETA: 0s - loss: 1.6190e-04 - mean_absolute_error: 0.0094100/126 [======================>.......] - ETA: 0s - loss: 1.5458e-04 - mean_absolute_error: 0.0092124/126 [============================>.] - ETA: 0s - loss: 1.5893e-04 - mean_absolute_error: 0.0094126/126 [==============================] - 0s 2ms/step - loss: 1.5977e-04 - mean_absolute_error: 0.0095 - val_loss: 1.0604e-04 - val_mean_absolute_error: 0.0086
Epoch 46/100
  1/126 [..............................] - ETA: 0s - loss: 1.5434e-04 - mean_absolute_error: 0.0097 26/126 [=====>........................] - ETA: 0s - loss: 1.6480e-04 - mean_absolute_error: 0.0100 50/126 [==========>...................] - ETA: 0s - loss: 1.6618e-04 - mean_absolute_error: 0.0099 75/126 [================>.............] - ETA: 0s - loss: 1.5510e-04 - mean_absolute_error: 0.0094 97/126 [======================>.......] - ETA: 0s - loss: 1.5889e-04 - mean_absolute_error: 0.0095122/126 [============================>.] - ETA: 0s - loss: 1.6171e-04 - mean_absolute_error: 0.0095126/126 [==============================] - 0s 2ms/step - loss: 1.5978e-04 - mean_absolute_error: 0.0095 - val_loss: 6.5169e-05 - val_mean_absolute_error: 0.0065
Epoch 47/100
  1/126 [..............................] - ETA: 0s - loss: 1.3930e-04 - mean_absolute_error: 0.0090 25/126 [====>.........................] - ETA: 0s - loss: 1.7541e-04 - mean_absolute_error: 0.0102 50/126 [==========>...................] - ETA: 0s - loss: 1.6952e-04 - mean_absolute_error: 0.0099 73/126 [================>.............] - ETA: 0s - loss: 1.8504e-04 - mean_absolute_error: 0.0105 97/126 [======================>.......] - ETA: 0s - loss: 1.8077e-04 - mean_absolute_error: 0.0104121/126 [===========================>..] - ETA: 0s - loss: 1.8789e-04 - mean_absolute_error: 0.0105126/126 [==============================] - 0s 2ms/step - loss: 1.8752e-04 - mean_absolute_error: 0.0105 - val_loss: 2.0233e-04 - val_mean_absolute_error: 0.0126
Epoch 48/100
  1/126 [..............................] - ETA: 0s - loss: 4.9602e-04 - mean_absolute_error: 0.0159 26/126 [=====>........................] - ETA: 0s - loss: 1.8180e-04 - mean_absolute_error: 0.0104 51/126 [===========>..................] - ETA: 0s - loss: 1.6265e-04 - mean_absolute_error: 0.0095 75/126 [================>.............] - ETA: 0s - loss: 1.6357e-04 - mean_absolute_error: 0.0097 99/126 [======================>.......] - ETA: 0s - loss: 1.6458e-04 - mean_absolute_error: 0.0097123/126 [============================>.] - ETA: 0s - loss: 1.7043e-04 - mean_absolute_error: 0.0099126/126 [==============================] - 0s 2ms/step - loss: 1.7007e-04 - mean_absolute_error: 0.0099 - val_loss: 1.1362e-04 - val_mean_absolute_error: 0.0090
Epoch 49/100
  1/126 [..............................] - ETA: 0s - loss: 1.8614e-04 - mean_absolute_error: 0.0105 26/126 [=====>........................] - ETA: 0s - loss: 1.8096e-04 - mean_absolute_error: 0.0107 51/126 [===========>..................] - ETA: 0s - loss: 1.6721e-04 - mean_absolute_error: 0.0100 77/126 [=================>............] - ETA: 0s - loss: 1.7034e-04 - mean_absolute_error: 0.0101101/126 [=======================>......] - ETA: 0s - loss: 1.7624e-04 - mean_absolute_error: 0.0100126/126 [==============================] - ETA: 0s - loss: 1.6715e-04 - mean_absolute_error: 0.0098126/126 [==============================] - 0s 2ms/step - loss: 1.6715e-04 - mean_absolute_error: 0.0098 - val_loss: 4.7253e-05 - val_mean_absolute_error: 0.0052
Epoch 50/100
  1/126 [..............................] - ETA: 0s - loss: 7.8566e-05 - mean_absolute_error: 0.0061 26/126 [=====>........................] - ETA: 0s - loss: 1.4032e-04 - mean_absolute_error: 0.0090 50/126 [==========>...................] - ETA: 0s - loss: 1.3453e-04 - mean_absolute_error: 0.0088 75/126 [================>.............] - ETA: 0s - loss: 1.5355e-04 - mean_absolute_error: 0.0092 99/126 [======================>.......] - ETA: 0s - loss: 1.6347e-04 - mean_absolute_error: 0.0096122/126 [============================>.] - ETA: 0s - loss: 1.6219e-04 - mean_absolute_error: 0.0096126/126 [==============================] - 0s 2ms/step - loss: 1.6071e-04 - mean_absolute_error: 0.0096 - val_loss: 5.2550e-05 - val_mean_absolute_error: 0.0058
Epoch 51/100
  1/126 [..............................] - ETA: 0s - loss: 6.0766e-04 - mean_absolute_error: 0.0123 26/126 [=====>........................] - ETA: 0s - loss: 2.1561e-04 - mean_absolute_error: 0.0110 51/126 [===========>..................] - ETA: 0s - loss: 1.8405e-04 - mean_absolute_error: 0.0103 76/126 [=================>............] - ETA: 0s - loss: 1.9296e-04 - mean_absolute_error: 0.0105101/126 [=======================>......] - ETA: 0s - loss: 1.8044e-04 - mean_absolute_error: 0.0102126/126 [==============================] - ETA: 0s - loss: 1.6994e-04 - mean_absolute_error: 0.0099126/126 [==============================] - 0s 2ms/step - loss: 1.6994e-04 - mean_absolute_error: 0.0099 - val_loss: 5.0473e-05 - val_mean_absolute_error: 0.0056
Epoch 52/100
  1/126 [..............................] - ETA: 0s - loss: 6.1130e-05 - mean_absolute_error: 0.0063 25/126 [====>.........................] - ETA: 0s - loss: 1.2243e-04 - mean_absolute_error: 0.0083 51/126 [===========>..................] - ETA: 0s - loss: 1.7698e-04 - mean_absolute_error: 0.0098 76/126 [=================>............] - ETA: 0s - loss: 1.6688e-04 - mean_absolute_error: 0.0097100/126 [======================>.......] - ETA: 0s - loss: 1.6280e-04 - mean_absolute_error: 0.0095125/126 [============================>.] - ETA: 0s - loss: 1.5741e-04 - mean_absolute_error: 0.0094126/126 [==============================] - 0s 2ms/step - loss: 1.5725e-04 - mean_absolute_error: 0.0094 - val_loss: 7.2022e-05 - val_mean_absolute_error: 0.0070
Epoch 53/100
  1/126 [..............................] - ETA: 0s - loss: 8.2797e-05 - mean_absolute_error: 0.0071 23/126 [====>.........................] - ETA: 0s - loss: 1.3602e-04 - mean_absolute_error: 0.0082 48/126 [==========>...................] - ETA: 0s - loss: 1.7856e-04 - mean_absolute_error: 0.0098 73/126 [================>.............] - ETA: 0s - loss: 1.7225e-04 - mean_absolute_error: 0.0098 98/126 [======================>.......] - ETA: 0s - loss: 1.6574e-04 - mean_absolute_error: 0.0096122/126 [============================>.] - ETA: 0s - loss: 1.5528e-04 - mean_absolute_error: 0.0093126/126 [==============================] - 0s 2ms/step - loss: 1.5544e-04 - mean_absolute_error: 0.0093 - val_loss: 5.6429e-05 - val_mean_absolute_error: 0.0060
Epoch 54/100
  1/126 [..............................] - ETA: 0s - loss: 1.6210e-04 - mean_absolute_error: 0.0094 25/126 [====>.........................] - ETA: 0s - loss: 1.3138e-04 - mean_absolute_error: 0.0087 50/126 [==========>...................] - ETA: 0s - loss: 1.3652e-04 - mean_absolute_error: 0.0089 75/126 [================>.............] - ETA: 0s - loss: 1.3282e-04 - mean_absolute_error: 0.0088100/126 [======================>.......] - ETA: 0s - loss: 1.5066e-04 - mean_absolute_error: 0.0092124/126 [============================>.] - ETA: 0s - loss: 1.4906e-04 - mean_absolute_error: 0.0092126/126 [==============================] - 0s 2ms/step - loss: 1.4971e-04 - mean_absolute_error: 0.0092 - val_loss: 8.4331e-05 - val_mean_absolute_error: 0.0076
Epoch 55/100
  1/126 [..............................] - ETA: 0s - loss: 9.7171e-05 - mean_absolute_error: 0.0082 26/126 [=====>........................] - ETA: 0s - loss: 1.3163e-04 - mean_absolute_error: 0.0088 50/126 [==========>...................] - ETA: 0s - loss: 1.2457e-04 - mean_absolute_error: 0.0086 75/126 [================>.............] - ETA: 0s - loss: 1.3303e-04 - mean_absolute_error: 0.0089 99/126 [======================>.......] - ETA: 0s - loss: 1.4135e-04 - mean_absolute_error: 0.0089123/126 [============================>.] - ETA: 0s - loss: 1.4571e-04 - mean_absolute_error: 0.0090126/126 [==============================] - 0s 2ms/step - loss: 1.4529e-04 - mean_absolute_error: 0.0090 - val_loss: 4.7296e-05 - val_mean_absolute_error: 0.0054
Epoch 56/100
  1/126 [..............................] - ETA: 0s - loss: 2.4613e-04 - mean_absolute_error: 0.0119 25/126 [====>.........................] - ETA: 0s - loss: 2.0530e-04 - mean_absolute_error: 0.0102 49/126 [==========>...................] - ETA: 0s - loss: 1.8029e-04 - mean_absolute_error: 0.0100 71/126 [===============>..............] - ETA: 0s - loss: 1.6228e-04 - mean_absolute_error: 0.0095 96/126 [=====================>........] - ETA: 0s - loss: 1.5363e-04 - mean_absolute_error: 0.0092121/126 [===========================>..] - ETA: 0s - loss: 1.5402e-04 - mean_absolute_error: 0.0093126/126 [==============================] - 0s 2ms/step - loss: 1.5498e-04 - mean_absolute_error: 0.0094 - val_loss: 8.2041e-05 - val_mean_absolute_error: 0.0075
Epoch 57/100
  1/126 [..............................] - ETA: 0s - loss: 1.2733e-04 - mean_absolute_error: 0.0094 25/126 [====>.........................] - ETA: 0s - loss: 1.4638e-04 - mean_absolute_error: 0.0095 49/126 [==========>...................] - ETA: 0s - loss: 1.5747e-04 - mean_absolute_error: 0.0095 72/126 [================>.............] - ETA: 0s - loss: 1.6059e-04 - mean_absolute_error: 0.0095 97/126 [======================>.......] - ETA: 0s - loss: 1.6136e-04 - mean_absolute_error: 0.0096121/126 [===========================>..] - ETA: 0s - loss: 1.5573e-04 - mean_absolute_error: 0.0094126/126 [==============================] - 0s 2ms/step - loss: 1.5464e-04 - mean_absolute_error: 0.0094 - val_loss: 4.6497e-05 - val_mean_absolute_error: 0.0052
Epoch 58/100
  1/126 [..............................] - ETA: 0s - loss: 1.1102e-04 - mean_absolute_error: 0.0084 26/126 [=====>........................] - ETA: 0s - loss: 1.6909e-04 - mean_absolute_error: 0.0095 51/126 [===========>..................] - ETA: 0s - loss: 1.6254e-04 - mean_absolute_error: 0.0096 76/126 [=================>............] - ETA: 0s - loss: 1.6510e-04 - mean_absolute_error: 0.0096101/126 [=======================>......] - ETA: 0s - loss: 1.6799e-04 - mean_absolute_error: 0.0099126/126 [==============================] - ETA: 0s - loss: 1.6213e-04 - mean_absolute_error: 0.0097126/126 [==============================] - 0s 2ms/step - loss: 1.6213e-04 - mean_absolute_error: 0.0097 - val_loss: 5.0336e-05 - val_mean_absolute_error: 0.0056
Epoch 59/100
  1/126 [..............................] - ETA: 0s - loss: 1.9284e-04 - mean_absolute_error: 0.0098 25/126 [====>.........................] - ETA: 0s - loss: 1.3278e-04 - mean_absolute_error: 0.0087 51/126 [===========>..................] - ETA: 0s - loss: 1.4291e-04 - mean_absolute_error: 0.0089 76/126 [=================>............] - ETA: 0s - loss: 1.4920e-04 - mean_absolute_error: 0.0093 98/126 [======================>.......] - ETA: 0s - loss: 1.5952e-04 - mean_absolute_error: 0.0095122/126 [============================>.] - ETA: 0s - loss: 1.6519e-04 - mean_absolute_error: 0.0097126/126 [==============================] - 0s 2ms/step - loss: 1.6550e-04 - mean_absolute_error: 0.0097 - val_loss: 4.6445e-05 - val_mean_absolute_error: 0.0052
Epoch 60/100
  1/126 [..............................] - ETA: 0s - loss: 1.0574e-04 - mean_absolute_error: 0.0082 25/126 [====>.........................] - ETA: 0s - loss: 1.2315e-04 - mean_absolute_error: 0.0085 50/126 [==========>...................] - ETA: 0s - loss: 1.3659e-04 - mean_absolute_error: 0.0090 72/126 [================>.............] - ETA: 0s - loss: 1.5027e-04 - mean_absolute_error: 0.0093 97/126 [======================>.......] - ETA: 0s - loss: 1.4677e-04 - mean_absolute_error: 0.0092121/126 [===========================>..] - ETA: 0s - loss: 1.5302e-04 - mean_absolute_error: 0.0093126/126 [==============================] - 0s 2ms/step - loss: 1.5261e-04 - mean_absolute_error: 0.0093 - val_loss: 4.6395e-05 - val_mean_absolute_error: 0.0052
Epoch 61/100
  1/126 [..............................] - ETA: 0s - loss: 7.3138e-05 - mean_absolute_error: 0.0065 26/126 [=====>........................] - ETA: 0s - loss: 1.2791e-04 - mean_absolute_error: 0.0086 51/126 [===========>..................] - ETA: 0s - loss: 1.4870e-04 - mean_absolute_error: 0.0091 76/126 [=================>............] - ETA: 0s - loss: 1.5255e-04 - mean_absolute_error: 0.0093100/126 [======================>.......] - ETA: 0s - loss: 1.6484e-04 - mean_absolute_error: 0.0098124/126 [============================>.] - ETA: 0s - loss: 1.6871e-04 - mean_absolute_error: 0.0098126/126 [==============================] - 0s 2ms/step - loss: 1.6795e-04 - mean_absolute_error: 0.0098 - val_loss: 5.3717e-05 - val_mean_absolute_error: 0.0058
Epoch 62/100
  1/126 [..............................] - ETA: 0s - loss: 9.8585e-05 - mean_absolute_error: 0.0077 25/126 [====>.........................] - ETA: 0s - loss: 1.2411e-04 - mean_absolute_error: 0.0086 50/126 [==========>...................] - ETA: 0s - loss: 1.2788e-04 - mean_absolute_error: 0.0087 76/126 [=================>............] - ETA: 0s - loss: 1.3378e-04 - mean_absolute_error: 0.0087101/126 [=======================>......] - ETA: 0s - loss: 1.4004e-04 - mean_absolute_error: 0.0088125/126 [============================>.] - ETA: 0s - loss: 1.4362e-04 - mean_absolute_error: 0.0090126/126 [==============================] - 0s 2ms/step - loss: 1.4438e-04 - mean_absolute_error: 0.0090 - val_loss: 9.5082e-05 - val_mean_absolute_error: 0.0081
Epoch 63/100
  1/126 [..............................] - ETA: 0s - loss: 1.4934e-04 - mean_absolute_error: 0.0103 26/126 [=====>........................] - ETA: 0s - loss: 1.8711e-04 - mean_absolute_error: 0.0100 51/126 [===========>..................] - ETA: 0s - loss: 1.5205e-04 - mean_absolute_error: 0.0092 76/126 [=================>............] - ETA: 0s - loss: 1.7781e-04 - mean_absolute_error: 0.0102 99/126 [======================>.......] - ETA: 0s - loss: 1.7406e-04 - mean_absolute_error: 0.0099123/126 [============================>.] - ETA: 0s - loss: 1.6615e-04 - mean_absolute_error: 0.0098126/126 [==============================] - 0s 2ms/step - loss: 1.6469e-04 - mean_absolute_error: 0.0097 - val_loss: 5.0526e-05 - val_mean_absolute_error: 0.0056
Epoch 64/100
  1/126 [..............................] - ETA: 0s - loss: 7.9829e-05 - mean_absolute_error: 0.0071 25/126 [====>.........................] - ETA: 0s - loss: 1.3992e-04 - mean_absolute_error: 0.0091 50/126 [==========>...................] - ETA: 0s - loss: 1.8274e-04 - mean_absolute_error: 0.0103 75/126 [================>.............] - ETA: 0s - loss: 1.8735e-04 - mean_absolute_error: 0.0105100/126 [======================>.......] - ETA: 0s - loss: 1.8606e-04 - mean_absolute_error: 0.0105125/126 [============================>.] - ETA: 0s - loss: 1.7696e-04 - mean_absolute_error: 0.0102126/126 [==============================] - 0s 2ms/step - loss: 1.7671e-04 - mean_absolute_error: 0.0102 - val_loss: 4.5935e-05 - val_mean_absolute_error: 0.0052
Epoch 65/100
  1/126 [..............................] - ETA: 0s - loss: 1.2449e-04 - mean_absolute_error: 0.0084 26/126 [=====>........................] - ETA: 0s - loss: 1.1696e-04 - mean_absolute_error: 0.0082 50/126 [==========>...................] - ETA: 0s - loss: 1.2973e-04 - mean_absolute_error: 0.0084 75/126 [================>.............] - ETA: 0s - loss: 1.3318e-04 - mean_absolute_error: 0.0086100/126 [======================>.......] - ETA: 0s - loss: 1.3274e-04 - mean_absolute_error: 0.0087125/126 [============================>.] - ETA: 0s - loss: 1.3648e-04 - mean_absolute_error: 0.0087126/126 [==============================] - 0s 2ms/step - loss: 1.3628e-04 - mean_absolute_error: 0.0087 - val_loss: 7.2885e-05 - val_mean_absolute_error: 0.0070
Epoch 66/100
  1/126 [..............................] - ETA: 0s - loss: 9.8194e-05 - mean_absolute_error: 0.0080 24/126 [====>.........................] - ETA: 0s - loss: 1.2653e-04 - mean_absolute_error: 0.0087 48/126 [==========>...................] - ETA: 0s - loss: 1.2036e-04 - mean_absolute_error: 0.0083 72/126 [================>.............] - ETA: 0s - loss: 1.3526e-04 - mean_absolute_error: 0.0086 96/126 [=====================>........] - ETA: 0s - loss: 1.3955e-04 - mean_absolute_error: 0.0087121/126 [===========================>..] - ETA: 0s - loss: 1.3525e-04 - mean_absolute_error: 0.0086126/126 [==============================] - 0s 2ms/step - loss: 1.3484e-04 - mean_absolute_error: 0.0086 - val_loss: 4.6705e-05 - val_mean_absolute_error: 0.0053
Epoch 67/100
  1/126 [..............................] - ETA: 0s - loss: 1.3006e-04 - mean_absolute_error: 0.0088 25/126 [====>.........................] - ETA: 0s - loss: 1.4334e-04 - mean_absolute_error: 0.0093 50/126 [==========>...................] - ETA: 0s - loss: 1.4531e-04 - mean_absolute_error: 0.0092 75/126 [================>.............] - ETA: 0s - loss: 1.4573e-04 - mean_absolute_error: 0.0092100/126 [======================>.......] - ETA: 0s - loss: 1.3953e-04 - mean_absolute_error: 0.0090125/126 [============================>.] - ETA: 0s - loss: 1.4862e-04 - mean_absolute_error: 0.0092126/126 [==============================] - 0s 2ms/step - loss: 1.4864e-04 - mean_absolute_error: 0.0092 - val_loss: 9.3936e-05 - val_mean_absolute_error: 0.0081
Epoch 68/100
  1/126 [..............................] - ETA: 0s - loss: 1.6811e-04 - mean_absolute_error: 0.0105 26/126 [=====>........................] - ETA: 0s - loss: 1.5639e-04 - mean_absolute_error: 0.0098 52/126 [===========>..................] - ETA: 0s - loss: 1.6296e-04 - mean_absolute_error: 0.0100 76/126 [=================>............] - ETA: 0s - loss: 1.5628e-04 - mean_absolute_error: 0.0097101/126 [=======================>......] - ETA: 0s - loss: 1.6203e-04 - mean_absolute_error: 0.0097126/126 [==============================] - ETA: 0s - loss: 1.5753e-04 - mean_absolute_error: 0.0095126/126 [==============================] - 0s 2ms/step - loss: 1.5753e-04 - mean_absolute_error: 0.0095 - val_loss: 5.0655e-05 - val_mean_absolute_error: 0.0056
Epoch 69/100
  1/126 [..............................] - ETA: 0s - loss: 1.1754e-04 - mean_absolute_error: 0.0082 26/126 [=====>........................] - ETA: 0s - loss: 1.0694e-04 - mean_absolute_error: 0.0079 49/126 [==========>...................] - ETA: 0s - loss: 1.3712e-04 - mean_absolute_error: 0.0088 72/126 [================>.............] - ETA: 0s - loss: 1.3455e-04 - mean_absolute_error: 0.0087 96/126 [=====================>........] - ETA: 0s - loss: 1.4103e-04 - mean_absolute_error: 0.0089119/126 [===========================>..] - ETA: 0s - loss: 1.3464e-04 - mean_absolute_error: 0.0087126/126 [==============================] - 0s 3ms/step - loss: 1.3468e-04 - mean_absolute_error: 0.0087 - val_loss: 6.3122e-05 - val_mean_absolute_error: 0.0065
Epoch 70/100
  1/126 [..............................] - ETA: 0s - loss: 1.6454e-04 - mean_absolute_error: 0.0100 25/126 [====>.........................] - ETA: 0s - loss: 1.2374e-04 - mean_absolute_error: 0.0087 48/126 [==========>...................] - ETA: 0s - loss: 1.3146e-04 - mean_absolute_error: 0.0089 72/126 [================>.............] - ETA: 0s - loss: 1.4341e-04 - mean_absolute_error: 0.0090 97/126 [======================>.......] - ETA: 0s - loss: 1.3736e-04 - mean_absolute_error: 0.0088121/126 [===========================>..] - ETA: 0s - loss: 1.3974e-04 - mean_absolute_error: 0.0089126/126 [==============================] - 0s 2ms/step - loss: 1.3930e-04 - mean_absolute_error: 0.0089 - val_loss: 5.0316e-05 - val_mean_absolute_error: 0.0056
Epoch 71/100
  1/126 [..............................] - ETA: 0s - loss: 9.4252e-05 - mean_absolute_error: 0.0071 26/126 [=====>........................] - ETA: 0s - loss: 1.4291e-04 - mean_absolute_error: 0.0095 51/126 [===========>..................] - ETA: 0s - loss: 1.6993e-04 - mean_absolute_error: 0.0100 77/126 [=================>............] - ETA: 0s - loss: 1.4865e-04 - mean_absolute_error: 0.0093102/126 [=======================>......] - ETA: 0s - loss: 1.5463e-04 - mean_absolute_error: 0.0096126/126 [==============================] - 0s 2ms/step - loss: 1.5849e-04 - mean_absolute_error: 0.0096 - val_loss: 5.4975e-05 - val_mean_absolute_error: 0.0059
Epoch 72/100
  1/126 [..............................] - ETA: 0s - loss: 1.6807e-04 - mean_absolute_error: 0.0107 27/126 [=====>........................] - ETA: 0s - loss: 1.4581e-04 - mean_absolute_error: 0.0090 52/126 [===========>..................] - ETA: 0s - loss: 1.3798e-04 - mean_absolute_error: 0.0088 76/126 [=================>............] - ETA: 0s - loss: 1.3249e-04 - mean_absolute_error: 0.0087 99/126 [======================>.......] - ETA: 0s - loss: 1.4410e-04 - mean_absolute_error: 0.0090123/126 [============================>.] - ETA: 0s - loss: 1.4867e-04 - mean_absolute_error: 0.0092126/126 [==============================] - 0s 2ms/step - loss: 1.4907e-04 - mean_absolute_error: 0.0092 - val_loss: 1.6004e-04 - val_mean_absolute_error: 0.0111
Epoch 73/100
  1/126 [..............................] - ETA: 0s - loss: 1.7092e-04 - mean_absolute_error: 0.0114 25/126 [====>.........................] - ETA: 0s - loss: 1.6568e-04 - mean_absolute_error: 0.0100 50/126 [==========>...................] - ETA: 0s - loss: 1.5901e-04 - mean_absolute_error: 0.0094 73/126 [================>.............] - ETA: 0s - loss: 1.4645e-04 - mean_absolute_error: 0.0091 98/126 [======================>.......] - ETA: 0s - loss: 1.5060e-04 - mean_absolute_error: 0.0092123/126 [============================>.] - ETA: 0s - loss: 1.6768e-04 - mean_absolute_error: 0.0098126/126 [==============================] - 0s 2ms/step - loss: 1.6906e-04 - mean_absolute_error: 0.0098 - val_loss: 1.2974e-04 - val_mean_absolute_error: 0.0097
Epoch 74/100
  1/126 [..............................] - ETA: 0s - loss: 1.8586e-04 - mean_absolute_error: 0.0116 25/126 [====>.........................] - ETA: 0s - loss: 1.4430e-04 - mean_absolute_error: 0.0095 49/126 [==========>...................] - ETA: 0s - loss: 1.5808e-04 - mean_absolute_error: 0.0099 75/126 [================>.............] - ETA: 0s - loss: 1.5162e-04 - mean_absolute_error: 0.0095 99/126 [======================>.......] - ETA: 0s - loss: 1.4073e-04 - mean_absolute_error: 0.0091122/126 [============================>.] - ETA: 0s - loss: 1.4775e-04 - mean_absolute_error: 0.0091126/126 [==============================] - 0s 3ms/step - loss: 1.5049e-04 - mean_absolute_error: 0.0092 - val_loss: 4.4333e-05 - val_mean_absolute_error: 0.0050
Epoch 75/100
  1/126 [..............................] - ETA: 0s - loss: 7.5629e-05 - mean_absolute_error: 0.0063 25/126 [====>.........................] - ETA: 0s - loss: 1.4044e-04 - mean_absolute_error: 0.0092 50/126 [==========>...................] - ETA: 0s - loss: 1.7755e-04 - mean_absolute_error: 0.0102 74/126 [================>.............] - ETA: 0s - loss: 1.8762e-04 - mean_absolute_error: 0.0104 98/126 [======================>.......] - ETA: 0s - loss: 1.7189e-04 - mean_absolute_error: 0.0100120/126 [===========================>..] - ETA: 0s - loss: 1.6841e-04 - mean_absolute_error: 0.0099126/126 [==============================] - 0s 2ms/step - loss: 1.6651e-04 - mean_absolute_error: 0.0098 - val_loss: 6.9119e-05 - val_mean_absolute_error: 0.0068
Epoch 76/100
  1/126 [..............................] - ETA: 0s - loss: 1.1221e-04 - mean_absolute_error: 0.0078 25/126 [====>.........................] - ETA: 0s - loss: 1.2426e-04 - mean_absolute_error: 0.0086 50/126 [==========>...................] - ETA: 0s - loss: 1.1464e-04 - mean_absolute_error: 0.0082 74/126 [================>.............] - ETA: 0s - loss: 1.4280e-04 - mean_absolute_error: 0.0090 96/126 [=====================>........] - ETA: 0s - loss: 1.6255e-04 - mean_absolute_error: 0.0096120/126 [===========================>..] - ETA: 0s - loss: 1.7447e-04 - mean_absolute_error: 0.0101126/126 [==============================] - 0s 2ms/step - loss: 1.7807e-04 - mean_absolute_error: 0.0102 - val_loss: 6.7277e-05 - val_mean_absolute_error: 0.0067
Epoch 77/100
  1/126 [..............................] - ETA: 0s - loss: 1.0839e-04 - mean_absolute_error: 0.0093 26/126 [=====>........................] - ETA: 0s - loss: 1.1881e-04 - mean_absolute_error: 0.0084 51/126 [===========>..................] - ETA: 0s - loss: 1.2983e-04 - mean_absolute_error: 0.0089 76/126 [=================>............] - ETA: 0s - loss: 1.2436e-04 - mean_absolute_error: 0.0086101/126 [=======================>......] - ETA: 0s - loss: 1.3154e-04 - mean_absolute_error: 0.0086126/126 [==============================] - ETA: 0s - loss: 1.3183e-04 - mean_absolute_error: 0.0086126/126 [==============================] - 0s 2ms/step - loss: 1.3183e-04 - mean_absolute_error: 0.0086 - val_loss: 4.4626e-05 - val_mean_absolute_error: 0.0051
Epoch 78/100
  1/126 [..............................] - ETA: 0s - loss: 1.0196e-04 - mean_absolute_error: 0.0079 26/126 [=====>........................] - ETA: 0s - loss: 1.3343e-04 - mean_absolute_error: 0.0090 51/126 [===========>..................] - ETA: 0s - loss: 1.4248e-04 - mean_absolute_error: 0.0089 76/126 [=================>............] - ETA: 0s - loss: 1.3843e-04 - mean_absolute_error: 0.0089101/126 [=======================>......] - ETA: 0s - loss: 1.4016e-04 - mean_absolute_error: 0.0089126/126 [==============================] - ETA: 0s - loss: 1.3683e-04 - mean_absolute_error: 0.0088126/126 [==============================] - 0s 2ms/step - loss: 1.3683e-04 - mean_absolute_error: 0.0088 - val_loss: 4.8424e-05 - val_mean_absolute_error: 0.0055
Epoch 79/100
  1/126 [..............................] - ETA: 0s - loss: 8.6225e-05 - mean_absolute_error: 0.0069 23/126 [====>.........................] - ETA: 0s - loss: 1.3151e-04 - mean_absolute_error: 0.0088 47/126 [==========>...................] - ETA: 0s - loss: 1.3279e-04 - mean_absolute_error: 0.0088 72/126 [================>.............] - ETA: 0s - loss: 1.3465e-04 - mean_absolute_error: 0.0089 96/126 [=====================>........] - ETA: 0s - loss: 1.3248e-04 - mean_absolute_error: 0.0086120/126 [===========================>..] - ETA: 0s - loss: 1.3582e-04 - mean_absolute_error: 0.0087126/126 [==============================] - 0s 3ms/step - loss: 1.3785e-04 - mean_absolute_error: 0.0088 - val_loss: 6.2146e-05 - val_mean_absolute_error: 0.0064
Epoch 80/100
  1/126 [..............................] - ETA: 0s - loss: 1.2237e-04 - mean_absolute_error: 0.0089 26/126 [=====>........................] - ETA: 0s - loss: 1.5680e-04 - mean_absolute_error: 0.0094 51/126 [===========>..................] - ETA: 0s - loss: 1.7965e-04 - mean_absolute_error: 0.0100 75/126 [================>.............] - ETA: 0s - loss: 1.7191e-04 - mean_absolute_error: 0.0100 99/126 [======================>.......] - ETA: 0s - loss: 1.6005e-04 - mean_absolute_error: 0.0096124/126 [============================>.] - ETA: 0s - loss: 1.5137e-04 - mean_absolute_error: 0.0094126/126 [==============================] - 0s 2ms/step - loss: 1.5151e-04 - mean_absolute_error: 0.0094 - val_loss: 4.3927e-05 - val_mean_absolute_error: 0.0050
Epoch 81/100
  1/126 [..............................] - ETA: 0s - loss: 1.0510e-04 - mean_absolute_error: 0.0087 25/126 [====>.........................] - ETA: 0s - loss: 1.0251e-04 - mean_absolute_error: 0.0079 50/126 [==========>...................] - ETA: 0s - loss: 1.0811e-04 - mean_absolute_error: 0.0080 74/126 [================>.............] - ETA: 0s - loss: 1.2380e-04 - mean_absolute_error: 0.0083 99/126 [======================>.......] - ETA: 0s - loss: 1.3421e-04 - mean_absolute_error: 0.0086124/126 [============================>.] - ETA: 0s - loss: 1.3253e-04 - mean_absolute_error: 0.0086126/126 [==============================] - 0s 2ms/step - loss: 1.3347e-04 - mean_absolute_error: 0.0087 - val_loss: 8.7438e-05 - val_mean_absolute_error: 0.0078
Epoch 82/100
  1/126 [..............................] - ETA: 0s - loss: 1.3322e-04 - mean_absolute_error: 0.0096 26/126 [=====>........................] - ETA: 0s - loss: 1.7287e-04 - mean_absolute_error: 0.0100 49/126 [==========>...................] - ETA: 0s - loss: 1.6560e-04 - mean_absolute_error: 0.0100 73/126 [================>.............] - ETA: 0s - loss: 1.6269e-04 - mean_absolute_error: 0.0098 98/126 [======================>.......] - ETA: 0s - loss: 1.6632e-04 - mean_absolute_error: 0.0100123/126 [============================>.] - ETA: 0s - loss: 1.6589e-04 - mean_absolute_error: 0.0099126/126 [==============================] - 0s 2ms/step - loss: 1.6567e-04 - mean_absolute_error: 0.0099 - val_loss: 9.9430e-05 - val_mean_absolute_error: 0.0084
Epoch 83/100
  1/126 [..............................] - ETA: 0s - loss: 1.3170e-04 - mean_absolute_error: 0.0086 23/126 [====>.........................] - ETA: 0s - loss: 1.8048e-04 - mean_absolute_error: 0.0105 47/126 [==========>...................] - ETA: 0s - loss: 1.5713e-04 - mean_absolute_error: 0.0097 72/126 [================>.............] - ETA: 0s - loss: 1.6198e-04 - mean_absolute_error: 0.0094 97/126 [======================>.......] - ETA: 0s - loss: 1.5867e-04 - mean_absolute_error: 0.0094122/126 [============================>.] - ETA: 0s - loss: 1.5421e-04 - mean_absolute_error: 0.0094126/126 [==============================] - 0s 2ms/step - loss: 1.5378e-04 - mean_absolute_error: 0.0094 - val_loss: 4.4092e-05 - val_mean_absolute_error: 0.0051
Epoch 84/100
  1/126 [..............................] - ETA: 0s - loss: 1.3963e-04 - mean_absolute_error: 0.0084 25/126 [====>.........................] - ETA: 0s - loss: 1.2916e-04 - mean_absolute_error: 0.0086 50/126 [==========>...................] - ETA: 0s - loss: 1.4200e-04 - mean_absolute_error: 0.0090 75/126 [================>.............] - ETA: 0s - loss: 1.5302e-04 - mean_absolute_error: 0.0092100/126 [======================>.......] - ETA: 0s - loss: 1.4495e-04 - mean_absolute_error: 0.0090125/126 [============================>.] - ETA: 0s - loss: 1.4683e-04 - mean_absolute_error: 0.0092126/126 [==============================] - 0s 2ms/step - loss: 1.4665e-04 - mean_absolute_error: 0.0092 - val_loss: 1.5284e-04 - val_mean_absolute_error: 0.0107
Epoch 85/100
  1/126 [..............................] - ETA: 0s - loss: 3.6833e-04 - mean_absolute_error: 0.0152 26/126 [=====>........................] - ETA: 0s - loss: 2.2046e-04 - mean_absolute_error: 0.0112 52/126 [===========>..................] - ETA: 0s - loss: 1.6522e-04 - mean_absolute_error: 0.0097 76/126 [=================>............] - ETA: 0s - loss: 1.4596e-04 - mean_absolute_error: 0.0091 99/126 [======================>.......] - ETA: 0s - loss: 1.3889e-04 - mean_absolute_error: 0.0089123/126 [============================>.] - ETA: 0s - loss: 1.4390e-04 - mean_absolute_error: 0.0090126/126 [==============================] - 0s 2ms/step - loss: 1.4468e-04 - mean_absolute_error: 0.0090 - val_loss: 1.3098e-04 - val_mean_absolute_error: 0.0099
Epoch 86/100
  1/126 [..............................] - ETA: 0s - loss: 2.3025e-04 - mean_absolute_error: 0.0129 26/126 [=====>........................] - ETA: 0s - loss: 1.9211e-04 - mean_absolute_error: 0.0106 48/126 [==========>...................] - ETA: 0s - loss: 1.7740e-04 - mean_absolute_error: 0.0100 73/126 [================>.............] - ETA: 0s - loss: 1.6294e-04 - mean_absolute_error: 0.0097 97/126 [======================>.......] - ETA: 0s - loss: 1.5072e-04 - mean_absolute_error: 0.0093122/126 [============================>.] - ETA: 0s - loss: 1.4846e-04 - mean_absolute_error: 0.0093126/126 [==============================] - 0s 2ms/step - loss: 1.4698e-04 - mean_absolute_error: 0.0092 - val_loss: 4.2739e-05 - val_mean_absolute_error: 0.0049
Epoch 87/100
  1/126 [..............................] - ETA: 0s - loss: 8.4045e-05 - mean_absolute_error: 0.0074 26/126 [=====>........................] - ETA: 0s - loss: 1.5279e-04 - mean_absolute_error: 0.0096 51/126 [===========>..................] - ETA: 0s - loss: 1.6959e-04 - mean_absolute_error: 0.0098 76/126 [=================>............] - ETA: 0s - loss: 1.8824e-04 - mean_absolute_error: 0.0105100/126 [======================>.......] - ETA: 0s - loss: 1.8074e-04 - mean_absolute_error: 0.0104124/126 [============================>.] - ETA: 0s - loss: 1.7230e-04 - mean_absolute_error: 0.0100126/126 [==============================] - 0s 2ms/step - loss: 1.7138e-04 - mean_absolute_error: 0.0100 - val_loss: 9.3704e-05 - val_mean_absolute_error: 0.0081
Epoch 88/100
  1/126 [..............................] - ETA: 0s - loss: 2.2270e-04 - mean_absolute_error: 0.0124 25/126 [====>.........................] - ETA: 0s - loss: 1.3956e-04 - mean_absolute_error: 0.0086 50/126 [==========>...................] - ETA: 0s - loss: 1.4639e-04 - mean_absolute_error: 0.0090 75/126 [================>.............] - ETA: 0s - loss: 1.3710e-04 - mean_absolute_error: 0.0088100/126 [======================>.......] - ETA: 0s - loss: 1.3514e-04 - mean_absolute_error: 0.0087123/126 [============================>.] - ETA: 0s - loss: 1.3045e-04 - mean_absolute_error: 0.0085126/126 [==============================] - 0s 2ms/step - loss: 1.2938e-04 - mean_absolute_error: 0.0085 - val_loss: 4.3624e-05 - val_mean_absolute_error: 0.0051
Epoch 89/100
  1/126 [..............................] - ETA: 0s - loss: 2.1341e-04 - mean_absolute_error: 0.0101 25/126 [====>.........................] - ETA: 0s - loss: 1.3329e-04 - mean_absolute_error: 0.0089 50/126 [==========>...................] - ETA: 0s - loss: 1.2130e-04 - mean_absolute_error: 0.0084 74/126 [================>.............] - ETA: 0s - loss: 1.3691e-04 - mean_absolute_error: 0.0090 95/126 [=====================>........] - ETA: 0s - loss: 1.5191e-04 - mean_absolute_error: 0.0095119/126 [===========================>..] - ETA: 0s - loss: 1.6376e-04 - mean_absolute_error: 0.0097126/126 [==============================] - 0s 2ms/step - loss: 1.6431e-04 - mean_absolute_error: 0.0097 - val_loss: 4.4830e-05 - val_mean_absolute_error: 0.0052
Epoch 90/100
  1/126 [..............................] - ETA: 0s - loss: 9.2003e-05 - mean_absolute_error: 0.0083 25/126 [====>.........................] - ETA: 0s - loss: 1.6172e-04 - mean_absolute_error: 0.0098 50/126 [==========>...................] - ETA: 0s - loss: 1.5532e-04 - mean_absolute_error: 0.0096 75/126 [================>.............] - ETA: 0s - loss: 1.5901e-04 - mean_absolute_error: 0.0096100/126 [======================>.......] - ETA: 0s - loss: 1.4841e-04 - mean_absolute_error: 0.0092125/126 [============================>.] - ETA: 0s - loss: 1.4209e-04 - mean_absolute_error: 0.0090126/126 [==============================] - 0s 2ms/step - loss: 1.4187e-04 - mean_absolute_error: 0.0090 - val_loss: 4.2801e-05 - val_mean_absolute_error: 0.0050
Epoch 91/100
  1/126 [..............................] - ETA: 0s - loss: 7.1849e-05 - mean_absolute_error: 0.0069 26/126 [=====>........................] - ETA: 0s - loss: 1.3404e-04 - mean_absolute_error: 0.0083 51/126 [===========>..................] - ETA: 0s - loss: 1.3325e-04 - mean_absolute_error: 0.0085 76/126 [=================>............] - ETA: 0s - loss: 1.2409e-04 - mean_absolute_error: 0.0083101/126 [=======================>......] - ETA: 0s - loss: 1.2601e-04 - mean_absolute_error: 0.0083126/126 [==============================] - ETA: 0s - loss: 1.2848e-04 - mean_absolute_error: 0.0085126/126 [==============================] - 0s 2ms/step - loss: 1.2848e-04 - mean_absolute_error: 0.0085 - val_loss: 4.5703e-05 - val_mean_absolute_error: 0.0053
Epoch 92/100
  1/126 [..............................] - ETA: 0s - loss: 1.3133e-04 - mean_absolute_error: 0.0088 24/126 [====>.........................] - ETA: 0s - loss: 1.4346e-04 - mean_absolute_error: 0.0095 49/126 [==========>...................] - ETA: 0s - loss: 1.3766e-04 - mean_absolute_error: 0.0092 74/126 [================>.............] - ETA: 0s - loss: 1.2921e-04 - mean_absolute_error: 0.0087 99/126 [======================>.......] - ETA: 0s - loss: 1.3684e-04 - mean_absolute_error: 0.0089123/126 [============================>.] - ETA: 0s - loss: 1.3765e-04 - mean_absolute_error: 0.0089126/126 [==============================] - 0s 2ms/step - loss: 1.3776e-04 - mean_absolute_error: 0.0089 - val_loss: 4.5234e-05 - val_mean_absolute_error: 0.0053
Epoch 93/100
  1/126 [..............................] - ETA: 0s - loss: 1.2022e-04 - mean_absolute_error: 0.0083 25/126 [====>.........................] - ETA: 0s - loss: 1.2021e-04 - mean_absolute_error: 0.0079 50/126 [==========>...................] - ETA: 0s - loss: 1.5043e-04 - mean_absolute_error: 0.0091 75/126 [================>.............] - ETA: 0s - loss: 1.4375e-04 - mean_absolute_error: 0.0091 98/126 [======================>.......] - ETA: 0s - loss: 1.3658e-04 - mean_absolute_error: 0.0089121/126 [===========================>..] - ETA: 0s - loss: 1.3855e-04 - mean_absolute_error: 0.0088126/126 [==============================] - 0s 2ms/step - loss: 1.4020e-04 - mean_absolute_error: 0.0089 - val_loss: 5.6842e-05 - val_mean_absolute_error: 0.0061
Epoch 94/100
  1/126 [..............................] - ETA: 0s - loss: 1.0999e-04 - mean_absolute_error: 0.0078 26/126 [=====>........................] - ETA: 0s - loss: 1.4466e-04 - mean_absolute_error: 0.0089 50/126 [==========>...................] - ETA: 0s - loss: 1.4806e-04 - mean_absolute_error: 0.0088 74/126 [================>.............] - ETA: 0s - loss: 1.3918e-04 - mean_absolute_error: 0.0087 98/126 [======================>.......] - ETA: 0s - loss: 1.3516e-04 - mean_absolute_error: 0.0087123/126 [============================>.] - ETA: 0s - loss: 1.3152e-04 - mean_absolute_error: 0.0086126/126 [==============================] - 0s 2ms/step - loss: 1.3153e-04 - mean_absolute_error: 0.0086 - val_loss: 4.2759e-05 - val_mean_absolute_error: 0.0050
Epoch 95/100
  1/126 [..............................] - ETA: 0s - loss: 1.4513e-04 - mean_absolute_error: 0.0092 25/126 [====>.........................] - ETA: 0s - loss: 1.2279e-04 - mean_absolute_error: 0.0085 47/126 [==========>...................] - ETA: 0s - loss: 1.2501e-04 - mean_absolute_error: 0.0083 72/126 [================>.............] - ETA: 0s - loss: 1.1721e-04 - mean_absolute_error: 0.0081 96/126 [=====================>........] - ETA: 0s - loss: 1.1776e-04 - mean_absolute_error: 0.0081120/126 [===========================>..] - ETA: 0s - loss: 1.2192e-04 - mean_absolute_error: 0.0083126/126 [==============================] - 0s 2ms/step - loss: 1.2462e-04 - mean_absolute_error: 0.0084 - val_loss: 8.2158e-05 - val_mean_absolute_error: 0.0076
Epoch 96/100
  1/126 [..............................] - ETA: 0s - loss: 2.4022e-04 - mean_absolute_error: 0.0121 23/126 [====>.........................] - ETA: 0s - loss: 1.2933e-04 - mean_absolute_error: 0.0085 46/126 [=========>....................] - ETA: 0s - loss: 1.1466e-04 - mean_absolute_error: 0.0080 71/126 [===============>..............] - ETA: 0s - loss: 1.3075e-04 - mean_absolute_error: 0.0086 96/126 [=====================>........] - ETA: 0s - loss: 1.2664e-04 - mean_absolute_error: 0.0085121/126 [===========================>..] - ETA: 0s - loss: 1.2549e-04 - mean_absolute_error: 0.0083126/126 [==============================] - 0s 2ms/step - loss: 1.2512e-04 - mean_absolute_error: 0.0083 - val_loss: 4.4314e-05 - val_mean_absolute_error: 0.0052
Epoch 97/100
  1/126 [..............................] - ETA: 0s - loss: 1.2047e-04 - mean_absolute_error: 0.0081 26/126 [=====>........................] - ETA: 0s - loss: 1.0182e-04 - mean_absolute_error: 0.0078 52/126 [===========>..................] - ETA: 0s - loss: 1.3161e-04 - mean_absolute_error: 0.0085 77/126 [=================>............] - ETA: 0s - loss: 1.2610e-04 - mean_absolute_error: 0.0082101/126 [=======================>......] - ETA: 0s - loss: 1.2524e-04 - mean_absolute_error: 0.0083126/126 [==============================] - ETA: 0s - loss: 1.2085e-04 - mean_absolute_error: 0.0082126/126 [==============================] - 0s 2ms/step - loss: 1.2085e-04 - mean_absolute_error: 0.0082 - val_loss: 4.1739e-05 - val_mean_absolute_error: 0.0049
Epoch 98/100
  1/126 [..............................] - ETA: 0s - loss: 1.0557e-04 - mean_absolute_error: 0.0073 26/126 [=====>........................] - ETA: 0s - loss: 1.3452e-04 - mean_absolute_error: 0.0085 52/126 [===========>..................] - ETA: 0s - loss: 1.1990e-04 - mean_absolute_error: 0.0081 76/126 [=================>............] - ETA: 0s - loss: 1.2516e-04 - mean_absolute_error: 0.0081100/126 [======================>.......] - ETA: 0s - loss: 1.3171e-04 - mean_absolute_error: 0.0085125/126 [============================>.] - ETA: 0s - loss: 1.3210e-04 - mean_absolute_error: 0.0086126/126 [==============================] - 0s 2ms/step - loss: 1.3231e-04 - mean_absolute_error: 0.0086 - val_loss: 4.2107e-05 - val_mean_absolute_error: 0.0050
Epoch 99/100
  1/126 [..............................] - ETA: 0s - loss: 1.0563e-04 - mean_absolute_error: 0.0080 26/126 [=====>........................] - ETA: 0s - loss: 2.1105e-04 - mean_absolute_error: 0.0109 47/126 [==========>...................] - ETA: 0s - loss: 1.9721e-04 - mean_absolute_error: 0.0107 71/126 [===============>..............] - ETA: 0s - loss: 1.7684e-04 - mean_absolute_error: 0.0101 95/126 [=====================>........] - ETA: 0s - loss: 1.6144e-04 - mean_absolute_error: 0.0097119/126 [===========================>..] - ETA: 0s - loss: 1.5980e-04 - mean_absolute_error: 0.0096126/126 [==============================] - 0s 3ms/step - loss: 1.5835e-04 - mean_absolute_error: 0.0095 - val_loss: 4.3590e-05 - val_mean_absolute_error: 0.0051
Epoch 100/100
  1/126 [..............................] - ETA: 0s - loss: 8.3461e-05 - mean_absolute_error: 0.0074 26/126 [=====>........................] - ETA: 0s - loss: 1.2231e-04 - mean_absolute_error: 0.0084 51/126 [===========>..................] - ETA: 0s - loss: 1.2207e-04 - mean_absolute_error: 0.0082 76/126 [=================>............] - ETA: 0s - loss: 1.2473e-04 - mean_absolute_error: 0.0084102/126 [=======================>......] - ETA: 0s - loss: 1.2240e-04 - mean_absolute_error: 0.0083126/126 [==============================] - 0s 2ms/step - loss: 1.2914e-04 - mean_absolute_error: 0.0086 - val_loss: 7.4195e-05 - val_mean_absolute_error: 0.0071
<keras.src.callbacks.History at 0x2115c0b4610>

After the training and fitting of the Machine Learning model for Switzerland, I tried to create visualizations comparing the model against the country’s training dataset, validation dataset, but most importantly the testing dataset (as shown below in the line graphs). Note that the darker and thicker blue lines represent the prediction model’s projections and the thinner red lines is the observed/gathered data.

```{python}
# Testing the Machine Learning Model prediction for Switzerland with the train, 
# validation, and test sets
# Most important is the test set prediction as this tests the effectiveness
# of the Machine Learning model on data it has not seen before 
switzerland_train_pred = switzerland_model.predict(X_switzerland_train).flatten()

plt.plot(dates_switzerland_train, switzerland_train_pred, linewidth=4)
plt.plot(dates_switzerland_train, y_switzerland_train, linewidth=1)
plt.legend(["Training Predictions", "Training Observations"])
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("Switzerland - Training Set Predictions vs. Observations")
plt.show()

switzerland_val_pred = switzerland_model.predict(X_switzerland_val).flatten()

plt.plot(dates_switzerland_val, switzerland_val_pred, linewidth=4)
plt.plot(dates_switzerland_val, y_switzerland_val, linewidth=1)
plt.legend(["Validation Predictions", "Validation Observations"])
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("Switzerland - Validation Set Predictions vs. Observations")
plt.show()

switzerland_test_pred = switzerland_model.predict(X_switzerland_test).flatten()

plt.plot(dates_switzerland_test, switzerland_test_pred, linewidth=4)
plt.plot(dates_switzerland_test, y_switzerland_test, linewidth=1)
plt.legend(["Testing Predictions", "Testing Observations"])
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("Switzerland - Testing Set Predictions vs. Observations")
plt.show()
```
  1/126 [..............................] - ETA: 41s 34/126 [=======>......................] - ETA: 0s  78/126 [=================>............] - ETA: 0s111/126 [=========================>....] - ETA: 0s126/126 [==============================] - 0s 1ms/step
 1/16 [>.............................] - ETA: 0s16/16 [==============================] - 0s 2ms/step
 1/16 [>.............................] - ETA: 0s16/16 [==============================] - 0s 2ms/step

Through careful consideration of all of the prediction-based vs. observation-based contrast visualizations together, I consolidated all of graphics into one singular visualization for you to see below to get a more general perspective of the effectiveness of the Machine Learning model at training and fitting towards predicting Switzerland’s international currency rate with the United States.

```{python}
# Plotting Switzerland's observational (reference) data with the predictions 
# of its Machine Learning Model (as a way to visually inspect the effectiveness 
# of the model) 
plt.plot(dates_switzerland_train, switzerland_train_pred, linewidth=4)
plt.plot(dates_switzerland_train, y_switzerland_train, linewidth=1)
plt.plot(dates_switzerland_val, switzerland_val_pred, linewidth=4)
plt.plot(dates_switzerland_val, y_switzerland_val, linewidth=1)
plt.plot(dates_switzerland_test, switzerland_test_pred, linewidth=4)
plt.plot(dates_switzerland_test, y_switzerland_test, linewidth=1)

plt.legend(["Training Predictions",
            "Training Observations",
            "Validation Predictions",
            "Validation Observations",
            "Testing Predictions",
            "Testing Observations"])
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("Culmination of the Three Machine Learning Phases of Switzerland's Dataset - Predictions vs. Observations")
plt.show()
```

To put it all together, I made one large visualization to encompass all 4 countries’ Machine Learning model prediction-based vs. observation-based visualizations - Austrailia, Canada, the United Kingdom, and Switzerland as shown below.

```{python}
# Plotting all countries' observational (reference) data with the predictions 
# of its Machine Learning Model (as a way to visually inspect the effectiveness 
# of the model in an overall sense) 
plt.plot(dates_austrailia_train, austrailia_train_pred, linewidth=4, linestyle="solid")
plt.plot(dates_austrailia_train, y_austrailia_train, linewidth=1, linestyle="solid")
plt.plot(dates_austrailia_val, austrailia_val_pred, linewidth=4, linestyle="solid")
plt.plot(dates_austrailia_val, y_austrailia_val, linewidth=1, linestyle="solid")
plt.plot(dates_austrailia_test, austrailia_test_pred, linewidth=4, linestyle="solid")
plt.plot(dates_austrailia_test, y_austrailia_test, linewidth=1, linestyle="solid")

plt.plot(dates_canada_train, canada_train_pred, linewidth=4, linestyle="dashed")
plt.plot(dates_canada_train, y_canada_train, linewidth=1, linestyle="dashed")
plt.plot(dates_canada_val, canada_val_pred, linewidth=4, linestyle="dashed")
plt.plot(dates_canada_val, y_canada_val, linewidth=1, linestyle="dashed")
plt.plot(dates_canada_test, canada_test_pred, linewidth=4, linestyle="dashed")
plt.plot(dates_canada_test, y_canada_test, linewidth=1, linestyle="dashed")

plt.plot(dates_united_kingdom_train, united_kingdom_train_pred, linewidth=4, linestyle="dotted")
plt.plot(dates_united_kingdom_train, y_united_kingdom_train, linewidth=1, linestyle="dotted")
plt.plot(dates_united_kingdom_val, united_kingdom_val_pred, linewidth=4, linestyle="dotted")
plt.plot(dates_united_kingdom_val, y_united_kingdom_val, linewidth=1, linestyle="dotted")
plt.plot(dates_united_kingdom_test, united_kingdom_test_pred, linewidth=4, linestyle="dotted")
plt.plot(dates_united_kingdom_test, y_united_kingdom_test, linewidth=1, linestyle="dotted")

plt.plot(dates_switzerland_train, switzerland_train_pred, linewidth=4, linestyle="dashdot")
plt.plot(dates_switzerland_train, y_switzerland_train, linewidth=1, linestyle="dashdot")
plt.plot(dates_switzerland_val, switzerland_val_pred, linewidth=4, linestyle="dashdot")
plt.plot(dates_switzerland_val, y_switzerland_val, linewidth=1, linestyle="dashdot")
plt.plot(dates_switzerland_test, switzerland_test_pred, linewidth=4, linestyle="dashdot")
plt.plot(dates_switzerland_test, y_switzerland_test, linewidth=1, linestyle="dashdot")

plt.legend(["Training Predictions",
            "Training Observations",
            "Validation Predictions",
            "Validation Observations",
            "Testing Predictions",
            "Testing Observations"])
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("Culmination of the Three Machine Learning Phases of All Four Countries' Datasets - Predictions vs. Observations")
plt.show()
```

Ultimately, here is the moment of truth: I tried to recursively predict Austrailia’s future expected projection on its international currency rate between the United States through using my LSTM prediction model as shown below. By using the data from the training dataset for Austrailia, I tried to contrast the effectiveness of the model by constrasting its projection to the actual validation and testing data results. However, unfortunately, it did not predict as well as I hoped, but this was a good experiment, nonetheless.

```{python}
# Attempt at using the model to predict into the future for Austrailia's currency 
# rate
recursive_pred: list = []
recursive_dates = np.concatenate([dates_austrailia_val, dates_austrailia_test])

for target_date in recursive_dates:
    last_window = deepcopy(X_austrailia_train[-1])
    next_pred = austrailia_model.predict(np.array([last_window])).flatten()
    recursive_pred.append(next_pred)
    last_window[-1] = next_pred
```
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - ETA: 0s1/1 [==============================] - 0s 15ms/step

To visualize the results of my recursive prediction that I completed, I added these results to the previous large visualization that encompassed all 4 countries’ Machine Learning model prediction-based vs. observation-based visualizations - Austrailia, Canada, the United Kingdom, and Switzerland as shown below.

```{python}
# Plotting all countries' observational (reference) data with the predictions 
# of its Machine Learning Model (as a way to visually inspect the effectiveness 
# of the model in an overall sense) along with the new recursive prediction
# results
plt.plot(dates_austrailia_train, austrailia_train_pred, linewidth=4, linestyle="solid")
plt.plot(dates_austrailia_train, y_austrailia_train, linewidth=1, linestyle="solid")
plt.plot(dates_austrailia_val, austrailia_val_pred, linewidth=4, linestyle="solid")
plt.plot(dates_austrailia_val, y_austrailia_val, linewidth=1, linestyle="solid")
plt.plot(dates_austrailia_test, austrailia_test_pred, linewidth=4, linestyle="solid")
plt.plot(dates_austrailia_test, y_austrailia_test, linewidth=1, linestyle="solid")
plt.plot(recursive_dates, recursive_pred, linewidth=4, linestyle="solid")

plt.legend(["Training Predictions",
            "Training Observations",
            "Validation Predictions",
            "Validation Observations",
            "Testing Predictions",
            "Testing Observations",
            "Recursive Predictions"], loc="upper right")
plt.rcParams["font.size"] = 8
plt.tight_layout()
plt.xlabel("Historical Date")
plt.ylabel("Currency Rate of the Respective Country to USD")
plt.title("Culmination of the Three Machine Learning Phases of Austrailia's Dataset - Predictions vs. Observations (With Recursive Pred. Attempt)")
plt.show()
```

Conclusions

  • Returning to my attempt to test the ability for my Machine Learning model to predict the International Currency rates for Austrailia from just the range of my training dataset as shown above, I felt that its prediction was acceptable in my opinion giving the averaging across the currency rate values in my validation and testing datasets would have proven to be considerably close in its precision.

  • Thus, I reached the conclusion that my International Currency Predictor would not be a viable Machine Learning model for any real-life applications. This Machine Learning model raised a valuable point - financial market prediction is a difficult endeavor to accurately predict. From a more general point of view, this International Currency Maching Learning prediction model is not totally inaccurate or untrustworthy but rather it is only on the micro-scale. These financial predictions do not always account for current events in that respective country such as changing domestic or international relations or constantly changing socioeconomic trends which could significantly sway market confidence and impact currency rate fluctuation. Consequently, economists often have to look at larger economic trends across several decades in order to make more educated predictions.

  • Ultimately, I learned a great deal about the complexities of financial prediction and usage of Machine Learning models as an attempt to solve this issue. Even though my model was not as successful at predicting as I would have hoped, I am interested to see the future of Machine Learning as it soon dominates these economic sub-field and continues to rise in its relevance by being a pivotal talking point for the future and applied soon enough to other sectors of our society.

Reference Sources and Citations (IEEE Format)

To complete this blog post, I used the following online sources as references for developing this:

[1] US International Exchange Rates Dataset:

B. Ferreira, “Foreign Exchange Rates 2000-2019”, 2019. [Online]. Available: https://www.kaggle.com/datasets/brunotly/foreign-exchange-rates-per-dollar-20002019. [Accessed: 04-Sep.-2023].

[2] Tutorial on Basics of LSTM and Prediction & Forecasting in Machine Learning:

Greg Hogg, “Stock Price Prediction & Forecasting with LSTM Neural Networks in Python”, YouTube, 26-Mar.-2022. [Online.] Available: https://www.youtube.com/watch?v=CbTU92pbDKw. [Accessed: 06-Sep.-2023].